Commit graph

418 commits

Author SHA1 Message Date
djmaze 64cf19746d Finish the sort feature 2021-03-27 16:02:48 +01:00
djmaze af3c79ce80 Moved CKEditor to be plugin 2021-03-25 13:35:15 +01:00
djmaze ab9e56f8b6 Reduce CSS footprint 2021-03-08 17:23:21 +01:00
djmaze 1ac96c93d6 Improved responsive view
Removed unused CSS
2021-03-05 16:46:40 +01:00
djmaze d351ee6367 Updated Squire to v1.11.1 2021-03-05 13:40:52 +01:00
djmaze a1f4daff3a Remove colors from <pre> and <code> to prevent proper working of "dark mode" 2021-02-24 00:51:05 +01:00
djmaze 2982027dd2 Made SquaresDark theme really dark.
Due to that, e-mails with incorrect background/color settings are unreadable.
So a new feature in the settings is there to remove colors from messages.
Not perfect yet, but it works.
2021-02-24 00:17:53 +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 0158a5fe1e Improve Squire toolbar
Cleanup some JS code
2021-02-22 17:28:54 +01:00
djmaze e52b9abc61 Cleanup more CSS and JS
and merge/cleanup/redesign composer attachments
2021-02-22 15:16:33 +01:00
djmaze bc64fe6d0d Use custom dropdown icon on <select> 2021-02-19 14:40:13 +01:00
djmaze b6d8fa5b3f Split admin css from app.css
Cleanup normalize and bootstrap css
Removed almost all css float
Removed CKEditor from app.css
2021-02-18 21:06:19 +01:00
djmaze 6dacfb3cf4 v2.3.2 2021-02-17 16:31:29 +01:00
djmaze 2c23955269 Improve font middle arrows
Simplify login spinner
2021-02-17 16:00:51 +01:00
djmaze 65e9deda2a v2.3.1 2021-02-12 12:42:06 +01:00
djmaze c47ed18db9 Improved and cleanup CSS 2021-02-12 11:39:02 +01:00
djmaze 60e29fdd66 Improved folder glyph 2021-02-12 01:05:02 +01:00
djmaze f1a3f54547 Fix menu dropdown icon (rainloop resized the font, not the glyph) 2021-02-11 21:07:40 +01:00
djmaze e141ee8ea3 remove unused glyph from snappymail font 2021-02-11 20:15:07 +01:00
djmaze 4a8c9f8e18 Improved icon font view 2021-02-11 17:46:29 +01:00
djmaze 93738eac22 Improved snappymail font unicode points 2021-02-11 12:21:04 +01:00
djmaze e55dc49e34 Cleanup some bootstrap css 2021-02-11 10:58:33 +01:00
djmaze 75b7176ada Remove knockout evaluatorFunctionTarget
Drop deprecated knockout throttle extender
Added knockout debounce extender
2021-02-10 11:33:36 +01:00
djmaze 57158bd55a Less float & less html is mobile view profit 2021-02-08 21:19:58 +01:00
djmaze 004378ed8c Merge and cleanup more CSS rules 2021-02-08 17:37:21 +01:00
djmaze 43c4293330 Cleanup some css and remove a float 2021-02-05 15:56:15 +01:00
djmaze 5e9941d58f Also convert template body-background-image to var()
And cleanup more CSS
2021-02-05 15:31:42 +01:00
djmaze d9bece04b2 Revamp CSS template system using var() feature 2021-02-05 10:42:20 +01:00
djmaze f08dfac99d Cleanup fontastic 2021-02-04 17:52:46 +01:00
djmaze b26586f2ba Cleanup Crossroads & Hasher and dropped Signals 2021-02-04 12:54:03 +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 5001dcc4d8 'use strict' already in libs.js 2021-02-02 14:10:48 +01:00
djmaze b015454b02 Cleanup unused CSS 2021-02-01 22:54:19 +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 b6f0b634fb Cleanup calls to Knockout observableArray
Improved Knockout observableArray
2021-01-22 12:23:20 +01:00
djmaze fa5476e486 Added support for 'length' property to Knockout observable 2021-01-22 09:46:04 +01:00
djmaze 21e5d3733a Found a small word breaking bug in sieve raw filters editor 2021-01-18 09:27:26 +01:00
djmaze 950579c7f5 Rename 'ajax' to 'json' because we don't use XML
We use json as response
2020-12-30 15:50:47 +01:00
djmaze 1c20cc6d13 Cleanup snappymail glyphs font 2020-12-02 14:31:06 +01:00
djmaze 2a174d9114 Added font-display:swap to glyphs font
Since we use more correct unicode points, we improve performance score from 92% to 93%
2020-11-27 14:30:03 +01:00
djmaze b57493bf0a Moved some font glyphs to their correct unicode code points
This improves visibility when webfonts are blocked (not downloaded).
2020-11-27 14:16:20 +01:00
djmaze fb680596a6 Fix naming 2020-11-13 00:04:35 +01:00
djmaze bdd68d0d8f improved knockout observableArray with all Array.prototype functions 2020-11-03 15:53:50 +01:00
djmaze 075762000b Resolve https://github.com/the-djmaze/snappymail/issues/32
Related https://github.com/the-djmaze/snappymail/issues/28
2020-10-30 16:59:52 +01:00
djmaze 1d57a62ddd Dropped more unused knockoutjs code 2020-10-29 11:15:04 +01:00
djmaze 5a0215987a knockoutjs replaced slow obj.__proto__ with Object.setPrototypeOf() 2020-10-28 20:19:38 +01:00
djmaze d49916731f replaced ko.utils.array* with native 2020-10-28 20:17:45 +01:00
djmaze 8a8d64a2c1 Resolve https://github.com/the-djmaze/snappymail/issues/28
Issue was incorrect filter param in createTreeWalker
2020-10-28 17:03:03 +01:00
djmaze ff6fb41812 Remove more unused knockout code 2020-10-28 13:58:37 +01:00
djmaze d1dfa227ae cleanup fontastic 2020-10-28 10:35:17 +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 48a9a03762 Removed fakeSpan from Inputosaurus and cleanup 2020-10-23 15:16:42 +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 36fa52307f Added: knockout.js observable toJSON() 2020-10-20 15:39:14 +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 a177081224 Bugfix: container.remove() is not a function 2020-10-14 19:18:10 +02:00
djmaze 3db8befbba fontastic use woff2 and drop ttf and svg 2020-10-14 19:17:40 +02:00
djmaze 167e323c72 Bugfix for https://github.com/the-djmaze/snappymail/issues/15#issuecomment-706213859 2020-10-13 15:23:34 +02:00
djmaze e02deee4f1 Make touchstart/touchmove events passive 2020-10-13 15:16:57 +02:00
djmaze 1e735bf4a9 Drop unused Knockout functionality
Especially dropped memoization for improved speed.
2020-10-13 14:56:23 +02:00
djmaze e7975d4f82 Bugfix: Knockout 'with:' used on 1 place 2020-10-13 10:15:50 +02:00
djmaze 8bb05b41ce Bugfix: bootstrap dopdown undefined eventTarget.getAttribute 2020-10-12 15:04:11 +02:00
djmaze 527694f361 Replace bootstrap .divider with cleaner .dividerbar which also reduces knockout calls 2020-10-12 15:03:45 +02:00
djmaze c2a5d0fda5 ko hidden: use html5 hidden attribute
ko visible: rollback to use style.display
2020-10-11 11:59:36 +02:00
the-djmaze 52e6b9b0ed
Knockout visibleHidden to HTML5 2020-10-11 00:27:45 +02:00
djmaze 993d4c31cc Update knockout-latest.debug.js 2020-10-09 12:45:55 +02:00
djmaze 92836117ee Bugfix: put back the knockout bindings if/ifnot as they are in use 2020-10-09 12:44:39 +02:00
djmaze ba7ed497b2 Cleanup JS and better terser compression 2020-10-09 11:58:15 +02:00
djmaze ee23a5553e Resolve https://github.com/the-djmaze/snappymail/issues/22 2020-10-09 10:31:44 +02:00
djmaze ac535b1d03 Remove more unused Knockout code 2020-10-09 10:20:22 +02:00
djmaze 07857a06a9 Cleanup knockout.js
- Remove AMD
- Manually removed closure-compiler polyfill for Object.entries
2020-10-05 13:46:19 +02:00
djmaze 72ed2b08b2 KnockoutJS to ES2015/ES6
TODO: use the new Proxy for ko.observable
2020-10-04 21:58:13 +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 cb2048f163 cleanup some code 2020-10-02 12:40:33 +02:00
djmaze 6c75dd12f8 Cleanup CSS and JS code 2020-10-01 11:10:40 +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 25b4c899d0 Removed country flags from language selection because country != language 2020-09-29 16:44:27 +02:00
djmaze a1a413dca2 Modifications for https://github.com/the-djmaze/snappymail/issues/15 2020-09-28 09:51:12 +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 c7054ff56c Resolve https://github.com/the-djmaze/snappymail/issues/14
There this works
2020-09-26 10:20:24 +02:00
djmaze e562ed159c Replace rainloop glyphs font with cleaned up snappymail glyph font 2020-09-25 17:42:14 +02:00
djmaze a8ddeecb49 Improved Webkit and Gecko :empty selector.
But the real block level unfocusable bug is still not solved.
2020-09-24 16:11:46 +02:00
djmaze 0fde531dd3 Issue #12 has something todo with Webkit and Gecko
A DIV has no height, but we solve this with CSS :empty
It's not perfect because we can still not focus when there's no BR.
Will keep digging!
2020-09-24 15:13:33 +02:00
djmaze d291716489 Cleanup some old browser support code in Squire 2020-09-24 13:01:07 +02:00
djmaze 3757324e32 Cleanup hash routing 2020-09-23 14:44:46 +02:00
djmaze 673f1bff79 Bugfix: inputosaurus revamp failed due to missing onChange handling 2020-09-23 13:07:44 +02:00
djmaze 65032e3b89 Bugfix: CKEditor failed to load 2020-09-23 11:20:00 +02:00
djmaze 6c6a5dd03b Enable Squire by default and put CKEditor as option 2020-09-22 15:21:23 +02:00
djmaze 996c747e45 Bugfix: Squire setHTML failed with hidden exception 2020-09-22 15:03:14 +02:00
djmaze df1d0fc8d6 Array.from() to spread syntax 2020-09-22 10:13:32 +02:00
djmaze 079d119f8a Removed lightgallery to drop whole jQuery 2020-09-21 17:33:58 +02:00
djmaze 1cd07955a2 drop jQuery support completely from knockoutjs 2020-09-21 16:11:06 +02:00
djmaze 06abbf0713 inputosaurus jQuery to native so we can drop jquery-ui 2020-09-21 16:05:04 +02:00
djmaze 4e449b9c66 replace knockout-sortable with html5 native 2020-09-20 23:15:06 +02:00
djmaze 3ea2f5f452 Replaced knockout-sortable with a slimmed down version (for now) 2020-09-19 13:46:02 +02:00
djmaze 4da5543c27 Remove more IE9 stuff from Knockoutjs 2020-09-19 13:36:05 +02:00
djmaze 1ec45a9f8e Bugfix: somehow Jua minified was broken. Cleaned it up and it works again 2020-09-19 13:32:50 +02:00
djmaze 5ef3006f4f Cleanup Jua code 2020-09-19 11:21:11 +02:00
djmaze 970e9d7d7d Bugfix: knockout-sortable was broken due to a knockoutjs change of me 2020-09-17 23:48:18 +02:00
djmaze 118c1613a4 Removed more IE workarounds from knockoutjs 2020-09-17 23:15:16 +02:00
djmaze 0f56c7d28f knockout appendChild => append
and tested closure-compiler 0.2.12 but still broken for es6 mode
2020-09-17 21:34:38 +02:00
djmaze 7713f459ac Replace $().trigger() and document.createEvent() with element.dispatchEvent(new Event()) 2020-09-17 21:18:39 +02:00
djmaze d06fed09d6 Drop support for old browsers and some jQuery 2020-09-17 16:40:43 +02:00
djmaze 091c4ec811 Clone 3.5.1 from github 2020-09-17 16:27:00 +02:00
djmaze f300ec94ee https://github.com/neilj/Squire/pull/344 2020-09-14 12:33:36 +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 bdc961dfab Improved Squire with the missing 'plain' mode. 2020-09-10 18:47:28 +02:00
djmaze dd66824cd1 Added the modified Squire HTML editor 2020-09-09 18:45:33 +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 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 1802dda136 Removed jQuery dependencies from Jua.js 2020-09-01 16:57:14 +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 39ba67de4b Bugfix: bootstrap native dropdown failed for Compose "from" 2020-08-30 16:17:36 +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 63af2e25ed v1.14.0-djmaze4 2020-08-19 12:39:19 +02:00
djmaze 9f73377a88 Bugfix: compose e-mail file upload failed to wrong conversion to ES2015
Must be a 39 degrees workplace failure
2020-08-15 20:11:56 +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 c3a213802d Bugfix: jQuery UI classesElementLookup value is Object, not an Array 2020-08-11 23:52:36 +02:00
djmaze b9b9cd736f Replaced ProgressJS with simple native dropin 2020-08-10 10:40:25 +02:00
djmaze 4383281de6 Removed unused bootstrap code 2020-08-08 14:39:51 +02:00
djmaze a0dcd93fea Removed jQuery UI widgetSlice 2020-08-07 13:27:43 +02:00
djmaze 656fd72319 $.isArray() is deprecated
$.bind() is deprecated
$.parseJSON is deprecated
$.unique is deprecated
jQuery .bind() is deprecated
jQuery .unbind() is deprecated
jQuery .load() is deprecated
removed $.support.transition
2020-08-07 09:40:36 +02:00
djmaze bbd9f49dcd $.proxy is deprecated
$.trim is deprecated
2020-08-06 18:24:46 +02:00
djmaze ae1b7610fd Remove use of $.error in jquery-ui 2020-08-06 16:24:19 +02:00
djmaze 7584e9003f Cleanup ProgressJS 2020-07-30 12:17:41 +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 db5751cd00 Cleaner boot.js 2020-07-28 11:23:06 +02:00
djmaze d28e193556 cleanup Progress.js 2020-07-27 17:40:00 +02:00
djmaze c9d444250f Strip webpack and iframe support from Jua.js (only use xmlhttprequest) 2020-07-27 16:58:04 +02:00
djmaze 1b331aca32 Removed unused code from JavaScript files 2020-07-27 14:52:18 +02:00
djmaze a12a3815f9 deprecated jQuery.delegate() to jQuery.on() 2020-07-25 13:50:46 +02:00
djmaze 281a5df732 Cleanup custom Underscore.js 2020-07-23 20:50:20 +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 84ac7dc893 Get rid of deprecated $.ui.plugin 2020-07-20 21:40:36 +02:00
djmaze ec3fd5b7e4 Remove jquery-letterfx, just like cd55e3ccc2 2020-07-20 11:26:40 +02:00
djmaze f16f604f48 Get the stored resized layout working again 2020-07-17 15:04:50 +02:00
djmaze 1e71698b79 Improved initHorizontalLayoutResizer and initVerticalLayoutResizer with custom resizer 2020-07-17 13:46:49 +02:00
djmaze e3aaea8035 Get rid of jQuery.wakup
Get rid of jQuery UI resizable (use HTML5 with ResizeObserver/MutationObserver, work-in-progress not as beautiful yet)
Get rid of hidden download() iframe
2020-07-16 19:49:56 +02:00
djmaze fca0bb5d56 Bugfix broken jQuery UI 2020-07-16 11:07:28 +02:00
djmaze 854d723927 Upgrade to custom jQuery UI 1.12.1 due to errors with jQuery 3 2020-07-15 14:16:07 +02:00
djmaze eb731a4183 Updated inputosaurus.js to work with jQuery3 2020-07-09 16:01:41 +02:00