Commit graph

260 commits

Author SHA1 Message Date
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
djmaze c3a2da65df Revamp array filtering
Replaced fakeMd5 with new Jua.randomId
Cleanup more code
2020-10-02 23:54:15 +02:00
djmaze 9992b20163 Merge file and mime code into simple Common/File.js 2020-10-02 14:44:29 +02:00
djmaze efcefbaf78 Cleanup CSS and drop bMobileDevice detection.
Touch devices can be any size and can use (bluetooth/usb-c mouse/keyboard) these days.
It's all about pixels and currently if the mode is mobile/no-mobile (this can be improved later).
2020-09-30 12:31:34 +02:00
djmaze 4257d9ca78 Resolve https://github.com/the-djmaze/snappymail/issues/10 2020-09-24 15:08:57 +02:00
djmaze d2c9e860cb Bugfix: mail?to= should be encodeURIComponent() 2020-09-22 14:17:48 +02:00
djmaze b66e68a3b1 Merge some parts of initByJson and initUpdateByMessageJson
Cleanup messageListChecked handling
2020-09-20 11:29:31 +02:00
djmaze 46198861bc cidWithOutTags => cidWithoutTags and don't check foundedCIDs because isLinked is already set 2020-09-20 11:15:00 +02:00
djmaze 9fc5a3ff6a Cleanup some code 2020-09-19 13:53:14 +02:00
djmaze 9241726ffe Bugfix: Message attachments should be observable or else KnockoutJS is not updating 2020-09-17 22:14:51 +02:00
djmaze 71f6fb25e5 Let all the new CollectionModels use AbstractCollectionModel 2020-09-16 16:33:53 +02:00
djmaze 086a2c1927 Fetch response 'Collection/MessageCollection' to new MessageCollectionModel 2020-09-16 15:44:36 +02:00
djmaze 8f07cf4ac6 foldersReload promises populator to the new FolderCollectionModel 2020-09-16 09:32:36 +02:00
djmaze 385cd9588c Bugfix: i've wrecked rendering of inline images 2020-09-15 20:40:55 +02:00
djmaze e99a69a9aa Attachments array to new AttachmentCollectionModel 2020-09-15 15:08:08 +02:00
djmaze 344edaec2a cleanup Fetch API code 2020-09-15 11:51:07 +02:00
djmaze 95f55deaad Attachments filetype was missing opendocument detection 2020-09-15 10:09:39 +02:00
djmaze 062f8d078e Message from, to, cc, bcc, replyTo and deliveredTo to the new EmailCollectionModel 2020-09-15 09:43:53 +02:00
djmaze f2d194947d Merge Objects prototype extensions 2020-09-04 17:07:35 +02:00
djmaze bdb36ec128 Use less jQuery, more native 2020-08-27 15:45:47 +02:00
djmaze b185402ae7 Bugfix: Contacts.js trim() missing
Bugfix: ClearCookie failed
2020-08-22 01:05:43 +02:00
djmaze 7a21694396 Drop windowResize/windowResizeCallback in favor of ResizeObservable 2020-08-19 12:34:05 +02:00
djmaze f6a55898c7 Removed isNormal() because 'null == undefined' so 'null != value' is sufficient 2020-08-17 21:57:56 +02:00
djmaze 9f1ea1a0fd Bugfix boostrap alerts.less was accidentally removed
Bugfix Date.fromNow('past'/'future') reversed
Replace Events[pub/sub]('interval.*') with setInterval()
Events[pub/sub] to native
Cleanup knockout extensions
Replaced momentToNode with proper HTML5 <time>
Cleanup Momentor
2020-08-14 20:35:39 +02:00
djmaze a8ef5ec75b Bugfix: Email addressparser
Cleanup vendor scripts
2020-08-12 11:49:40 +02:00
djmaze aaf4933b0a Embed cleaner node modules 2020-08-12 01:47:24 +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 b1678a1566 Replaced moment.js with simple extended Date.prototype 2020-08-07 14:44:33 +02:00
djmaze bbd9f49dcd $.proxy is deprecated
$.trim is deprecated
2020-08-06 18:24:46 +02:00
djmaze b3dd0c51b5 Removed lozad. Lazy loading of images. A browser can itself these days. 2020-08-06 15:07:43 +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 2ba34532c2 JavaScript string compare '' is always a ToBoolean
See https://www.ecma-international.org/ecma-262/5.1/#sec-9.2
2020-07-28 17:20:14 +02:00