Commit graph

144 commits

Author SHA1 Message Date
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
f3bfa0e8c1 Cleanup and split Enums 2021-01-24 22:58:06 +01:00
djmaze
864da66b5f Replace viewDecorator and popupDecorator with proper AbstractView classes 2021-01-24 10:25:23 +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
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
4946feada3 Resolve https://github.com/the-djmaze/snappymail/issues/31 2020-10-30 16:46:18 +01:00
djmaze
3eb6ab1ef7 Improved knockout observables management to prevent memory leaks 2020-10-26 12:54:03 +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
76c4f62186 Improved reviveFromJson() for *Model 2020-10-23 15:15:54 +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
4177467f81 Bugfix: '`' backtick shortcut being dead key
* remove 'Insert' key from class Selector and bugfix Selector ' ' space.
* replace 'M' (move) shortcut with 'Insert' (like: insert into)
* '`' backtick being dead key shortcut with 'M' and 'ContextMenu' keys.
2020-10-09 15:00:26 +02:00
djmaze
ee23a5553e Resolve https://github.com/the-djmaze/snappymail/issues/22 2020-10-09 10:31:44 +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
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
m hagoort
5e7f531c7f Revamp shortcuts handler (not tested yet) 2020-09-26 00:02:29 +02:00
djmaze
39f39db447 Resolve https://github.com/the-djmaze/rainloop-webmail/issues/7 2020-09-23 12:18:36 +02:00
djmaze
5457427fc1 prepearMessageAttachments => prepareMessageAttachments 2020-09-23 11:20:18 +02:00
djmaze
f559b3c87e Remove images on reply 2020-09-22 11:38:13 +02:00
djmaze
6d5317d969 Don't add inline attachments on reply 2020-09-20 11:13:40 +02:00
djmaze
9fc5a3ff6a Cleanup some code 2020-09-19 13:53:14 +02:00
djmaze
d88c183112 Bugfix: broken message.attachments in compose window 2020-09-18 00:33:43 +02:00
djmaze
5d281486d0 Try to fix HtmlEditor isHtml() issue with SquireUI
Real fix should be made with the wrong use of modeToggle()
2020-09-17 16:10:27 +02:00
djmaze
9c18126843 Move some knockoutjs bindings, extenders and functions to Admin and User specific areas 2020-09-17 00:02:35 +02:00
djmaze
467f615713 Move Knoin routOff, routOn, routReload & setHash to rl.route.* 2020-09-16 20:35:29 +02:00
djmaze
e99a69a9aa Attachments array to new AttachmentCollectionModel 2020-09-15 15:08:08 +02:00
djmaze
b904eca98e Cleanup __APP__/getApp code 2020-09-15 09:29:25 +02:00
djmaze
29cf711a6a Converted *Ajax into *Fetch (because we use the Fetch API, not jQuery.ajax) 2020-09-14 19:40:56 +02:00
djmaze
540c70ecbf Added Squire HTML editor as lightweight fast alternative solution for the heavy CKEditor
Some features are still missing (as i need to create own UI)
Enable in:
[labs]
use_squire_html_editor = On
2020-09-09 17:03:44 +02:00
djmaze
f2d194947d Merge Objects prototype extensions 2020-09-04 17:07:35 +02:00
djmaze
aeb5275648 Improved boot.js with existing global window.rl
Put dev/Storage/Settings.js in boots.js global rl.settings
2020-09-04 12:05:17 +02:00
djmaze
0309879d6b Bugfix: e-mail compose modal resizeObserver wrong height 2020-09-02 09:32:28 +02:00
djmaze
1802dda136 Removed jQuery dependencies from Jua.js 2020-09-01 16:57:14 +02:00
djmaze
dcdaf70601 Bugfix: compose window resizeObserver 2020-08-31 16:32:27 +02:00
djmaze
bdb36ec128 Use less jQuery, more native 2020-08-27 15:45:47 +02:00
djmaze
d1c06a8ece Extend the use of ResizeObserver by dropping all knockoutjs observable this.resizerTrigger in mail composer
As benefit this also drops the CustomEvent('resize.real')
2020-08-19 11:30:31 +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
f6a55898c7 Removed isNormal() because 'null == undefined' so 'null != value' is sufficient 2020-08-17 21:57:56 +02:00
djmaze
7670d2073d Prevent parameter errors in sendMessage()/saveMessage() due to too many parameters.
Instead provide an object.
sendMessage param 'SentFolder' and saveMessage param 'DraftFolder' now both 'SaveFolder'
2020-08-17 21:32:57 +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
6541a1de7c Remove Common/Enums Magics.* 2020-08-13 22:58:41 +02:00
djmaze
a8ef5ec75b Bugfix: Email addressparser
Cleanup vendor scripts
2020-08-12 11:49:40 +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
bbd9f49dcd $.proxy is deprecated
$.trim is deprecated
2020-08-06 18:24:46 +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