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