Johannes Meyer
f50c095e15
js: Support custom collapsible controls in place of the default one
2021-05-05 17:59:12 +02:00
Johannes Meyer
94a16056d7
js: Speedup collapsible.js by a factor of 10
...
It's still relatively slow as it forces a reflow in the
browser if there are many collapsibles in the view.
I didn't manage to identify the issue yet, but I left
a TODO at the location that's responsible for it.
2021-03-30 09:31:57 +02:00
Johannes Meyer
25263e767b
js: Allow to disable persistence for collapsibles
2021-03-30 09:27:22 +02:00
Johannes Meyer
eb0d808aec
collapsible.js: Enhance height calculations
...
`data-visible-height` now only covers the actual content height
2019-07-29 16:02:48 +02:00
Johannes Meyer
8cd6a46388
collapsible.js: Add support for custom control elements
2019-07-29 10:19:29 +02:00
Johannes Meyer
a4848803c8
collapsible.js: Listen on `#layout` for rendered events
2019-07-26 16:23:18 +02:00
Johannes Meyer
91a8bdf786
collapsible.js: Don't collapse until at least twice the visible space is required
2019-07-26 07:36:17 +02:00
Johannes Meyer
74cb0ef3c9
collapsible.js: Don't enforce `data-visible-rows` for tables and lists
2019-07-26 07:36:17 +02:00
Johannes Meyer
5c290e1b68
collapsible.js: Rename event callbacks
...
`onExternalCollapse` => `onCollapse`
`onExternalExpansion` => `onExpand`
2019-07-17 13:12:41 +02:00
Johannes Meyer
2bf050f57d
storage.js: Don't use the native event mechanism but a simple callback handling
2019-07-17 13:12:41 +02:00
Johannes Meyer
c05291296a
collapsible.js: Only apply external expansions/collapses if necessary
2019-07-17 13:12:41 +02:00
Johannes Meyer
0f16e20d92
storage.js: Write `null` instead of `undefined` to the storage
...
`undefined` causes the key to be ignored by JSON.stringify
2019-07-17 13:12:41 +02:00
Johannes Meyer
cbd1e1bb92
storage.js: Drop `StorageAwareSet` and replace it with `StorageAwareMap`
2019-07-17 13:12:41 +02:00
Johannes Meyer
95dee43f5b
storage.js: Just use a factory to create behavior storages
2019-07-17 13:12:41 +02:00
Johannes Meyer
3b7a1a5ab4
storage.js: Add method `on` to `StorageAwareSet`
2019-07-17 13:12:41 +02:00
Johannes Meyer
ffec2ebd4c
collapsible.js: Utilize storage.js
2019-07-17 13:12:41 +02:00
Johannes Meyer
beae5b5921
collapsible.js: Update collapsible states when the layout changes
2019-07-17 13:12:41 +02:00
Johannes Meyer
0140fdf485
collapsible.js: Use `scrollHeight` to measure a container's actual height
2019-07-17 13:12:41 +02:00
Johannes Meyer
a99f653a63
collapsible.js: Don't process collapsible containers multiple times
2019-07-17 13:12:41 +02:00
Johannes Meyer
fc782b59a9
collapsible.js: Don't collapse containers which are near to the maximum
2019-07-17 13:12:41 +02:00
Johannes Meyer
754f45566a
collapsible.js: Make storage working with multiple tabs
2019-07-17 13:12:41 +02:00
Johannes Meyer
a642117c8a
collapsible.js: Remove superflous spaces after the `function` keyword
2019-07-17 13:12:41 +02:00
Johannes Meyer
9a6b1cffd6
collapsible.js: Don't use Set features which IE11 doesn't support
2019-07-17 13:12:41 +02:00
Johannes Meyer
ec2a6b5c78
collapsible.js: Use namespace `behavior` for local storage entries
2019-07-17 13:12:41 +02:00
Johannes Meyer
1748404efe
collapsible.js: Enhance how we'll utilize `localStorage`
2019-07-17 13:12:41 +02:00
Johannes Meyer
6f28a5c3e1
collapsible.js: Rename `height` to `visible-height`
2019-07-17 13:12:41 +02:00
Johannes Meyer
1ae1dc387f
collapsible.js: Rename `numofrows` to `visible-rows`
2019-07-17 13:12:41 +02:00
Johannes Meyer
b8bdd743a2
collapsible.js: Remove useless `> tbody > th` row selector
2019-07-17 13:12:41 +02:00
Johannes Meyer
ba44240b68
collapsible.js: Store and load states form localStorage
2019-07-17 13:12:41 +02:00
Johannes Meyer
3122af2838
collapsible.js: Properly track a collapsible's state across navigation
2019-07-17 13:12:41 +02:00
Johannes Meyer
0ed030410f
collapsible.js: Listen for rendered events on all containers
...
not just #col2
2019-07-17 13:12:41 +02:00
Johannes Meyer
0574f44bd9
colllapsibleContainer.js: Rename to collapsible.js
2019-07-17 13:12:41 +02:00