Commit graph

317 commits

Author SHA1 Message Date
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
djmaze
82bed1ed80 Cleanup array.length checks and for() to forEach() 2020-07-28 12:35:41 +02:00
djmaze
dca0ff02ed Use jQuery.slim
Underscore.js _.uniq(_.compact( to native Array.filter((value, index, self) => !!value && self.indexOf(value) == index)
Underscore.js _.compact to native Array.filter(value => !!value)
Underscore.js _.uniq to native Array.filter((value, index, self) => self.indexOf(value) == index)
Underscore.js _.values to native Object.values
Underscore.js _.flatten to native Array.flat
Underscore.js _.union to native Array.concat + unique filter
Underscore.js _.reduce to native Array.reduce
Underscore.js _.escape replaced with advanced htmlspecialchars()
Underscore.js _.memoize replaced
Now Underscore.js is a slim custom version (only _.debounce, _.defer & _.throttle)
2020-07-23 16:06:16 +02:00
djmaze
43c92a82e6 Underscore.js _.delay() to native setTimeout() 2020-07-22 20:28:25 +02:00
djmaze
a82575a830 Underscore.js _.map() to native Array.map() (optional with Object.entries/values) 2020-07-22 20:09:31 +02:00
djmaze
a5d41edb24 Underscore.js _.each() to native Array.forEach() (optional with Object.entries/values) 2020-07-22 14:49:18 +02:00
djmaze
9c0072d626 Underscore.js _.find() to native Array.find() 2020-07-22 10:43:19 +02:00
djmaze
961fa305c9 -1…*.indexOf() to native .includes() 2020-07-20 21:39:00 +02:00
djmaze
db2d95d684 JavaScript inArray()/indexOf() to .includes() 2020-07-20 14:33:33 +02:00
djmaze
0b0747b8dc Upgraded some old JavaScript to ECMAScript 1.6
Removed some jQuery references
Added JavaScript Globals.$htmlCL for frequently used window.document.documentElement.classList
2020-07-15 14:25:51 +02:00
djmaze
10a00f8391 Bugfix: remove JavaScript isFramed() as it requires the removed GoogleSocial 2020-03-19 15:22:07 +01:00
RainLoop Team
08333610ce Update dependencies 2019-12-24 22:05:46 +03:00
RainLoop Team
40dc22a317 Remove knockout-transformations dependency 2019-07-04 22:58:15 +03:00
RainLoop Team
8a0be3212d prettier --write 2019-07-04 22:19:24 +03:00
RainLoop Team
c7cd537b4d Update devDependencies 2018-02-27 22:10:26 +03:00
RainLoop
90a3d2b62a Fix incorrect mailto format #1521 2017-10-06 21:52:00 +03:00
RainLoop
d76fde37df Fix crippled contact names (#1447) 2017-09-27 20:58:15 +03:00
RainLoop
ed5685314e Fix unexpected desktop mode on mobile devices + small fixes (#1514) 2017-09-25 00:08:44 +03:00
RainLoop
4f19d9fd56 Try the lozad lazy loader 2017-09-21 01:18:41 +03:00
RainLoop Team
483549660b Add "cc" to "View in separate window"/"Print" 2017-07-05 22:20:24 +03:00
RainLoop Team
8da988fef2 Synchronize localizations from Transifex
Update package.json dependencies
Fix eslint errors
webpack 2 -> webpack 3
2017-06-24 22:26:27 +03:00
RainLoop Team
e5af98b04b Update ckeditor
Move e2e tests
Code refactoring
2016-09-12 23:50:21 +03:00
RainLoop Team
e6e0b02849 Code refactoring
Flow first look
2016-09-10 02:27:53 +03:00
RainLoop Team
17669b7be0 es5 -> es2015 (last stage)
Signature plugin fixes
Add view decorator
A large number of fixes
2016-08-20 20:30:16 +03:00
RainLoop Team
e88c193334 *.jsx -> *.js 2016-08-11 02:34:09 +03:00
RainLoop Team
c3985da102 Move almost all libs to node_modules
Update libs
2016-07-30 18:35:08 +03:00
RainLoop Team
786873041f Small fixes 2016-07-17 18:29:35 +03:00
RainLoop Team
cec53b111f Code refactoring (5) (es5 -> es2015) 2016-07-17 18:05:15 +03:00
Pierre Rudloff
b23d9a77c4 Add unsubscribe button 2016-07-17 16:26:20 +02:00
RainLoop Team
38a1041a73 Code refactoring (es5 -> es2015) 2016-07-07 00:03:30 +03:00
RainLoop Team
fb2e492ce8 More scrict rules 2016-07-05 22:52:52 +03:00
RainLoop Team
52e2698cdf Add more strict rules (eslint) 2016-07-02 01:49:59 +03:00
RainLoop Team
8e8a041032 eslint (additional rules) 2016-07-01 01:05:04 +03:00
RainLoop Team
77a1d3f3df jshint -> eslint 2016-06-27 23:55:37 +03:00
RainLoop Team
40b3f929e9 Back from Typescript to ES2015 2016-06-27 21:32:19 +03:00
RainLoop Team
a74a92638a Typescript (first look) 2016-06-25 01:19:21 +03:00
RainLoop Team
80ab02363e Code refactoring (v2) 2016-06-17 02:32:16 +03:00
RainLoop Team
90d95d3ca4 Code refactoring 2016-06-16 02:36:44 +03:00
RainLoop Team
08ccf55577 js -> jsx 2016-06-07 00:58:44 +03:00
RainLoop Team
aeec36de19 Small fixes 2016-05-22 20:35:33 +03:00
RainLoop Team
a655b94aba Update openpgpjs (1.2.0 -> 2.3.0) (#1023) 2016-05-05 03:14:38 +03:00
RainLoop Team
72ca818500 Fix eslint warnings 2016-04-20 20:31:24 +03:00
Carles Escrig Royo
44dfa53cde
Must encrypt with the sender key 2016-04-07 14:07:19 +02:00
Carles Escrig Royo
a34da5de0d
Encrypt/decrypt with multiple addresses in a single GPG key 2016-04-06 20:26:29 +02:00
RainLoop Team
2ab17f8eff Small refactoring: Identity 2015-10-29 23:47:23 +03:00
RainLoop Team
87887373c1 Updated: ckeditor 4.5.3, jquery 1.11.3, openpgpjs 1.2.0
OpenPGP decrypt fix
+ Small fixes
2015-09-18 21:35:30 +03:00
RainLoop Team
9b6b68e72b Added: New keyboard shortcuts for compose popup (Esc, Sift+Esc, `)
Fixed: Folders list tree viewer
2015-08-30 22:31:04 +03:00
RainLoop Team
3498700f61 Add additional logging for OpenPGP
Remove enforcing lower case for email addresses
Small fixes
2015-08-26 21:05:29 +03:00
RainLoop Team
723c2ac6b8 Vacation filter improvements
New Pgp encrypt/sign popup
2015-08-07 00:54:47 +04:00
RainLoop Team
c99a46a118 Small improvements 2015-07-30 01:14:48 +04:00
RainLoop Team
9ade5a585b Clickable notifications (#745) 2015-07-06 22:47:08 +04:00
RainLoop Team
34a9b8cbc5 OpenPGP improvements (first step)
openpgpjs: 0.7.2 -> 0.10.1
additional fixes
2015-06-23 01:34:52 +04:00
RainLoop Team
09334159c2 A lot small fixes 2015-06-23 01:34:51 +04:00
RainLoop Team
05b1c1dfe5 Filter improvements 2015-05-13 02:53:01 +04:00
RainLoop Team
3246b2c81f Change license to AGPL 2015-05-05 00:05:06 +04:00
RainLoop Team
2ac2168477 Small fixes 2015-04-30 00:09:03 +04:00
RainLoop Team
19f06c11d2 Added new language strings 2015-04-26 02:01:56 +04:00
RainLoop Team
8a4bce3591 New thread list logic (step 3) 2015-04-22 01:01:29 +04:00
RainLoop Team
b062e9b190 Composer fixes 2015-04-16 21:58:30 +04:00
RainLoop Team
a4904f4c00 Message thread optimization 2015-04-15 02:27:31 +04:00
RainLoop Team
0ea982671b PreRelease 1.8.3 2015-04-14 00:24:15 +04:00
RainLoop Team
af2815cd61 Attachments control panel 2015-04-11 01:52:15 +04:00
RainLoop Team
1d943356f5 Simple mp3 player 2015-04-10 12:17:49 +04:00
RainLoop Team
b7709c8117 Code refactoring 2015-04-07 20:40:27 +04:00
RainLoop Team
18931eaca0 Smooth reload animation 2015-03-31 04:12:05 +04:00
RainLoop Team
16d2f46a31 RC 2015-03-19 02:00:44 +04:00
RainLoop Team
d8c9f7ec14 Code refactoring 2015-03-19 01:59:55 +04:00
RainLoop Team
bab64a7cea Code refactoring (promises for folders management) 2015-03-17 18:30:17 +04:00
RainLoop Team
3090b44dae Interface fixes 2015-03-16 02:01:51 +04:00
RainLoop Team
147dce6e4a Momentor (moment optimization) 2015-03-07 04:41:38 +04:00
RainLoop Team
b6ca9e357e New thread controller 2015-03-06 04:42:40 +04:00
RainLoop Team
f1b3271b4d Weekly fixes 2015-03-04 01:15:17 +04:00
RainLoop Team
e1ab11a9b0 Cache refactoring
Contacts settings fixes
2015-02-24 20:27:27 +04:00
RainLoop Team
13d4c769e2 Small fixes 2015-02-23 20:20:41 +04:00
RainLoop Team
4eaef23cc7 Code refactoring 2015-02-22 20:35:17 +04:00
RainLoop Team
31860420cb Code refactoring 2015-02-22 02:00:51 +04:00
RainLoop Team
e3064b10aa Fixed strange characters in plain text mode (Firefox) (Closes #462) 2015-02-17 17:32:11 +04:00
RainLoop Team
6116597f6f Many fixes
New ownCloud package with a built-in webmail
2015-02-12 01:41:07 +04:00
RainLoop Team
1119022916 Added individual signatures for every identity. 2015-02-08 05:12:34 +04:00
RainLoop Team
493191375f Identities refactoring and improvements (Reply-To and BCC) 2015-02-06 19:29:34 +04:00
RainLoop Team
2937f341ee Small fixes 2015-02-03 21:18:08 +04:00
RainLoop Team
286ab567af Code refactoring 2015-02-03 05:56:26 +04:00
RainLoop Team
79233ad83c Added counters of unread messages for additional accounts (#377) 2015-02-02 00:48:49 +04:00
RainLoop Team
abddb3d828 Pre release fixes and improvements 2015-02-01 19:44:44 +04:00
RainLoop Team
0735071f1c mailto links fixes
Filters interface fixes
DKIM status a new message
2015-01-31 23:00:10 +04:00
RainLoop Team
b42ce01e7e Code refactoring (Translator, Stores, ko) 2015-01-26 03:13:12 +04:00
RainLoop Team
929bffccef Sieve filters (beta) 2015-01-25 00:36:20 +04:00
RainLoop Team
94789632f0 Sieve filters (alpha / beta version coming soon) 2015-01-24 02:35:42 +04:00
RainLoop Team
02ba68868f Sieve filters (interface) 2015-01-22 00:16:20 +04:00
RainLoop Team
68cc322bd5 Sieve filters (interface/vacation action) 2015-01-20 01:20:12 +04:00
RainLoop Team
ef3042aff7 Sieve filters (interface) 2015-01-19 02:47:33 +04:00
RainLoop Team
9bc977cccf Added: DKIM status 2015-01-13 03:24:08 +04:00
RainLoop Team
bce962328d Release fixes 2015-01-09 03:31:31 +04:00
RainLoop Team
f749d77fff Release commit 2015-01-08 15:40:10 +04:00
RainLoop Team
7ef9ebb45f Optimizations
Added "[labs]imap_folder_list_limit" setting (optimization)
2015-01-08 02:50:59 +04:00
RainLoop Team
e3e7c1d963 Interface redesign (attachments, new preview pane layout) 2015-01-04 23:30:07 +04:00
RainLoop Team
d5eacb6a4d Interface optimization
Mark as important (compose)
2014-12-31 16:21:43 +04:00
RainLoop Team
f9640b3ffa Attachments (redesign) 2014-12-27 23:49:53 +04:00
RainLoop Team
06e6f1a2da New Message View (with attachments thumbnails) 2014-12-24 22:50:03 +04:00
RainLoop Team
e4b286e257 Merged from sub repository (filters - step 4) 2014-12-18 01:02:29 +04:00
RainLoop Team
ec7324b061 Merged from sub repository (updated ckeditor, filters - step 2) 2014-12-01 21:36:46 +04:00
RainLoop Team
2545ce3cd9 Code refactoring 2014-11-12 20:46:54 +04:00
RainLoop Team
139f412b6a Added Google Viewer Integration (Preview Microsoft Word, Excel and PowerPoint files) 2014-10-31 00:09:53 +04:00
RainLoop Team
ebb6a06c65 Added additional account edit form 2014-10-21 20:49:15 +04:00
RainLoop Team
8cf8b94d39 Code refactoring 2014-10-18 17:43:44 +04:00
RainLoop Team
3a9bc849c9 Header parser fixes (ISO_2022_JP charset probles) (Closes #355)
+ Small fixes
2014-10-18 01:09:20 +04:00
RainLoop Team
c26ab305a1 Small fixes
Release commit
2014-10-05 22:53:24 +04:00
RainLoop Team
d8321a522e ko cleaning up 2014-10-04 15:58:01 +04:00
RainLoop Team
36bdce3084 Remove tags support from code. 2014-10-03 23:09:13 +04:00
RainLoop Team
06274c6a7c Code refactoring
Fixed owncloud password encoder/decoder (#291)
Fixed ckeditor in ownCloud iframe (Closes #302)
Release commit
2014-09-06 01:44:29 +04:00
RainLoop Team
7a374ebe03 Fixed Opening an email with specific content „hangs” RainLoop in the browser (Closes #308)
Code refactoring
2014-09-05 19:53:44 +04:00