Commit graph

285 commits

Author SHA1 Message Date
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 5590fd4860 isNonEmptyArray => arrayLength 2021-07-21 21:34:17 +02:00
djmaze d5f0b1d06c Resolve Issue #98 2021-07-14 12:03:09 +02:00
djmaze af3c79ce80 Moved CKEditor to be plugin 2021-03-25 13:35:15 +01:00
djmaze 673bd49095 Improvements for #62 2021-03-25 10:08:29 +01:00
djmaze fe4dbc729c Added isFunction() 2021-03-24 14:22:25 +01:00
djmaze 0b64083543 Array.isArray to isArray
Array.isNotEmpty to isNonEmptyArray
2021-03-16 16:49:14 +01:00
djmaze 4b6f6b1bfc Move addObservablesTo, addComputablesTo & addSubscribablesTo to Common/Utils 2021-03-16 10:59:47 +01:00
djmaze 0696e20878 Bugfix: improved firefox mobile draggable solution 2021-02-24 10:41:24 +01: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 e52b9abc61 Cleanup more CSS and JS
and merge/cleanup/redesign composer attachments
2021-02-22 15:16:33 +01:00
djmaze fe45179847 Cleanup some mobile modal screen sizes
And simplify the ko command bindinghandler to use CSS :enabled
2021-02-19 23:31:50 +01:00
djmaze bc64fe6d0d Use custom dropdown icon on <select> 2021-02-19 14:40:13 +01:00
djmaze 158991ed55 Improve Squire UI design 2021-02-19 12:11:20 +01:00
djmaze 540b12ed26 Replace babel command decorators with proper knockout command decorators 2021-02-19 12:09:20 +01:00
djmaze db0d03db83 Bugfix: conflicting File object with native JS
Cleanup: Stores and tooltips
2021-02-17 14:40:21 +01:00
djmaze d7994ddab6 Revamp Mobile/Desktop switcher without completely reloading.
Remove switcher from login page, it became useless.
2021-02-16 20:12:23 +01:00
djmaze 10f9ce39d9 Revamp mobile including CSS flexbox for messageListItem 2021-02-15 15:20:22 +01:00
djmaze a2727c65fe Bugfix: messages list ArrowUp/ArrowDown broken 2021-02-12 12:00:06 +01:00
djmaze ce4ee3ba3f Revamp saveTrigger 2021-02-11 10:08:27 +01:00
djmaze 111455054e Speedup message bodies cache cleanup
Remove ko.bindingHandlers.link
2021-02-10 16:50:58 +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 004378ed8c Merge and cleanup more CSS rules 2021-02-08 17:37:21 +01:00
djmaze 92bbaadbf3 bugfix: changed css broke spinner querySelector 2021-02-04 22:47:38 +01:00
djmaze f08dfac99d Cleanup fontastic 2021-02-04 17:52:46 +01:00
djmaze 6a92912a3d Bugfix: Inputosaurus modifications got broken.
Replaced completely with EmailAddressesComponent
2021-02-03 23:36:36 +01:00
djmaze b0e3020aab Bugfix: inputosaurus failed due to changes 2021-02-03 12:55:49 +01:00
djmaze 90ee39b114 Improve switching of wysiwyg/plain composer 2021-02-02 12:23:32 +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 7ccc44616d Small code cleanups and fix translations 2021-01-27 00:26:31 +01:00
djmaze b31bf3d7f5 Improved js minification 2021-01-26 11:46:30 +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 f3bfa0e8c1 Cleanup and split Enums 2021-01-24 22:58:06 +01:00
djmaze 0474f29272 Bugfix: wrote a buggy fix for safari 2020-11-23 17:05:13 +01:00
djmaze 4986de6b93 Bugfix: Safari doesn’t fire the visibilitychange event as expected when visibilityState transitions to hidden 2020-11-23 16:44:34 +01:00
djmaze 7db7d5545b Improved observables 2020-10-27 11:09:24 +01:00
djmaze f25d210f3e Solve menu arrow navigation
https://github.com/the-djmaze/snappymail/issues/22
2020-10-26 14:34:59 +01:00
djmaze 3eb6ab1ef7 Improved knockout observables management to prevent memory leaks 2020-10-26 12:54:03 +01: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 e02deee4f1 Make touchstart/touchmove events passive 2020-10-13 15:16:57 +02:00
djmaze cc046907ed ko.utils.unwrapObservable => ko.unwrap 2020-10-13 14:56:45 +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 ba7ed497b2 Cleanup JS and better terser compression 2020-10-09 11:58:15 +02:00
djmaze 6c75dd12f8 Cleanup CSS and JS code 2020-10-01 11:10:40 +02:00
djmaze 0eea2cb5ad Modifications for https://github.com/the-djmaze/snappymail/issues/12 2020-09-30 17:11:06 +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 17575f19f0 Activated a working HTML5 Drag & Drop polyfill for the Firefox Mobile browser 2020-09-28 20:04:09 +02:00
djmaze d735893cd6 Added HTML5 Drag & Drop for Gecko/Firefox Mobile
Chrome does support dragstart and was fixed previously.
This is not active yet as i'm testing for touch issues.
2020-09-28 17:23:22 +02:00
djmaze 9b94265844 Resolve https://github.com/the-djmaze/snappymail/issues/17 2020-09-28 11:26:20 +02:00
djmaze 2d429297ad Resolve https://github.com/the-djmaze/snappymail/issues/18 2020-09-28 10:29:58 +02:00
djmaze 35b531caac Resolve https://github.com/the-djmaze/snappymail/issues/20 2020-09-28 09:50:31 +02:00
djmaze 5b986b7bb0 Bugfix: Chrome 84 on Android only accepts text/plain in Drag & Drop 2020-09-27 12:04:47 +02:00
djmaze 344c478a45 Release v2.0.0-rc1 2020-09-26 12:25:57 +02:00
djmaze 31828b125f cleanup some orphan css 2020-09-25 17:42:40 +02:00
djmaze 673f1bff79 Bugfix: inputosaurus revamp failed due to missing onChange handling 2020-09-23 13:07:44 +02:00
djmaze 1bb154d6f4 Bugfix: The ability to list more than one selector in :not() is experimental and not yet widely supported. 2020-09-23 11:48:08 +02:00
djmaze 65032e3b89 Bugfix: CKEditor failed to load 2020-09-23 11:20:00 +02:00
djmaze 302f2847b8 Resolve https://github.com/the-djmaze/rainloop-webmail/issues/8 2020-09-23 10:08:34 +02:00
djmaze 996c747e45 Bugfix: Squire setHTML failed with hidden exception 2020-09-22 15:03:14 +02:00
djmaze 067c502592 Fix SquireUI on mobile 2020-09-22 11:19:52 +02:00
djmaze df1d0fc8d6 Array.from() to spread syntax 2020-09-22 10:13:32 +02:00
djmaze 06abbf0713 inputosaurus jQuery to native so we can drop jquery-ui 2020-09-21 16:05:04 +02:00
djmaze ea2e0c09d8 improved html5 d&d 2020-09-21 09:29:00 +02:00
djmaze 4e449b9c66 replace knockout-sortable with html5 native 2020-09-20 23:15:06 +02:00
djmaze 9fc5a3ff6a Cleanup some code 2020-09-19 13:53:14 +02:00
djmaze c282e2c9b5 Replace messages jQuery drag/drop with native HTML5 2020-09-18 14:01:27 +02:00
djmaze 7713f459ac Replace $().trigger() and document.createEvent() with element.dispatchEvent(new Event()) 2020-09-17 21:18:39 +02:00
djmaze 7ac8143f34 Cleanup knockout commands and replaced EventKeyCode with native KeyboardEvent.key 2020-09-17 17:47:35 +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 b904eca98e Cleanup __APP__/getApp code 2020-09-15 09:29:25 +02:00
djmaze 8b53b189f8 Cleanup CSS and fix SquireUI css 2020-09-13 14:13:16 +02:00
djmaze a022139403 Added: browse/upload image button to SquireUI 2020-09-11 14:40:13 +02:00
djmaze a7cc115bfb Move SquireUI into libs.js 2020-09-11 12:39:56 +02:00
djmaze ecb9bd8ac1 Added the insertSignature code in SquireUI
Added hints/title (in english) to SquireUI toolbar buttons
2020-09-10 21:44:01 +02:00
djmaze bdc961dfab Improved Squire with the missing 'plain' mode. 2020-09-10 18:47:28 +02:00
djmaze 72cbdfa7f2 Split SquireUI from HtmlEditor.js and improved SquireUI with styling 2020-09-10 12:56:45 +02:00
djmaze f2d194947d Merge Objects prototype extensions 2020-09-04 17:07:35 +02:00
djmaze 0e8bf13d5d Bugfix: the new endShowHide failed in Edge and mobile browsers
Cleanup bootstrap less files
2020-09-02 21:30:23 +02:00
djmaze 7135cc38fe Remove bootstrap Modal feature for improved transition effects (in future might use <dialog>) 2020-09-02 17:06:35 +02:00
djmaze eb5fb5342e Cleanup bootstrap 2020-09-01 21:50:17 +02:00
djmaze 088945b636 v1.14.0-djmaze5 2020-08-31 16:33:40 +02:00
djmaze 645831368d Again replaced some jQuery to native and cleaned up normalize.css without IE 2020-08-31 12:45:43 +02:00
djmaze 69fcc240e9 More jQuery to native (including bootstrap.js) 2020-08-30 10:30:50 +02:00
djmaze bdb36ec128 Use less jQuery, more native 2020-08-27 15:45:47 +02:00
djmaze d5665463fe Remove rl-anim feature and use no-mobile 2020-08-24 18:53:47 +02:00
djmaze 1e0586f124 upgraded yarn 2020-08-24 11:26:19 +02:00
djmaze 31bb7267ec Revamp aBootstrapDropdowns 2020-08-24 11:14:35 +02:00
djmaze 0ccfa6a9b1 Bugfix: droppable area (folders) failed to scroll 2020-08-23 21:58:30 +02:00
djmaze 53451a1236 cleanup ko.js unused functions 2020-08-19 16:23:15 +02:00
djmaze 7a21694396 Drop windowResize/windowResizeCallback in favor of ResizeObservable 2020-08-19 12:34:05 +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 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 382aef7ebb Replaced ifvisible.js with simple drop-in to handle prefetch messages 2020-08-13 21:25:42 +02:00
djmaze f5a444aa14 Removed opentip
Cleanup lightgallery
2020-08-13 13:16:08 +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 4383281de6 Removed unused bootstrap code 2020-08-08 14:39:51 +02:00
djmaze 12c88e34b3 Removed pikaday (unused) 2020-07-30 12:05:47 +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 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 aae7883b99 Bugfix: bootstrap jQuery('#') syntax error
Changed: use ES2015
Changed: gulp uglify to terser
Removed: ChangePassword
Removed: nanoscroll
Removed: JS polyfills
2020-03-13 15:30:39 +01:00
RainLoop Team 8a0be3212d prettier --write 2019-07-04 22:19:24 +03:00
RainLoop Team afef42ba5d eslint fixes 2019-02-01 19:05:44 +03:00
RainLoop Team 791f0ff6ad Small fixes and improvements 2018-07-10 00:05:02 +03:00
RainLoop d76fde37df Fix crippled contact names (#1447) 2017-09-27 20:58:15 +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 77fb74bc4a Update package.json dependencies 2017-02-28 21:44:13 +03:00
RainLoop Team 0bbb2f14a4 1.10.4.183
---
Fixes:
New login form style display problem since version 1.10.4 (#1196)
Collapse the TO: field in message view (#1199)
Paste with HTML tags fails (#1193)
2016-09-29 00:40:17 +03:00
RainLoop Team e6e0b02849 Code refactoring
Flow first look
2016-09-10 02:27:53 +03:00
RainLoop Team 4ee1712fac Fix glass styles 2016-09-03 02:51:17 +03:00
RainLoop Team 1526130bfc Add asserts folder
Add @command decorator
2016-09-03 02:19:37 +03:00
RainLoop Team a60ffc06e1 Update ckeditor
Avoid empty commands
Small fixes
2016-09-01 23:41:36 +03:00
RainLoop Team 962391e2a0 Add cmd interface
Code refactoring
2016-08-24 01:17:50 +03:00
RainLoop Team e6e1a19477 Add cmd interface 2016-08-23 23:15:14 +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 161ddc9920 More fixes for scrutinizer-ci (+ enable php) 2016-08-09 23:11:54 +03:00
RainLoop Team 59b32241bf More fixes for scrutinizer-ci 2016-08-09 22:52:30 +03:00
RainLoop Team 062483f078 Small code optimization 2016-08-09 01:54:25 +03:00
RainLoop Team c3985da102 Move almost all libs to node_modules
Update libs
2016-07-30 18:35:08 +03:00
RainLoop Team cec53b111f Code refactoring (5) (es5 -> es2015) 2016-07-17 18:05:15 +03:00
RainLoop Team d7ab67a460 Code refactoring (4) (es5 -> es2015) 2016-07-15 22:54:37 +03:00
RainLoop Team 38a1041a73 Code refactoring (es5 -> es2015) 2016-07-07 00:03:30 +03:00
RainLoop Team 52e2698cdf Add more strict rules (eslint) 2016-07-02 01:49:59 +03:00
RainLoop Team 8a6765faeb Fix eslint version 2016-07-01 01:50:11 +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 68890f8083 Add datepicker component (#716) 2016-06-24 00:57:35 +03:00
RainLoop Team 253a19987f Fix arguments -> ...args 2016-06-09 19:46:03 +03:00
RainLoop Team 99cdd1f43f Add use_native_scrollbars setting 2016-06-08 21:07:16 +03:00
RainLoop Team 08ccf55577 js -> jsx 2016-06-07 00:58:44 +03:00
RainLoop Team b0ffd84ac6 Add mobile version (beta) 2016-05-01 04:07:29 +03:00
RainLoop Team f64b63c549 Improve GUI (#1014) 2016-04-29 01:45:33 +03:00
RainLoop Team 445cd155e5 ES2015 first look / babeljs 2015-11-15 03:24:02 +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 42bac6aa2f PreRelease fixes 2015-07-06 00:33:55 +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 9a98bff931 Release fixes 2015-05-18 00:41:57 +04:00
RainLoop Team f91f74fe7c Release fixes 2015-05-12 20:33:02 +04:00
RainLoop Team a11dcbed4b Focused state for custom checkbox (Closes #604) 2015-04-25 17:50:10 +04:00
RainLoop Team b062e9b190 Composer fixes 2015-04-16 21:58:30 +04:00