Florian Strohmaier
c06aec0471
Remove unused code
2019-12-06 15:36:34 +01:00
Florian Strohmaier
cfbeb26354
JS: Disable fixControls()
2019-12-06 15:36:34 +01:00
Johannes Meyer
cc065b949b
js: Use custom event `icinga-init` to trigger initial render events
...
The `load` event is not really only fired *after all shared resources are loaded*.
Just Chromium ensures this event is fired only after `ready` and `DOMContentLoaded`.
FF, IE and Safari don't so we need our own post-init event: `icinga-init`
2019-11-26 16:00:21 +01:00
Johannes Meyer
48098a2830
js: Don't initialize modules using a `beforerender` event
...
`beforerender` is already too late. Module initialization
done using an event handler is wrong anyway. It's some
kind of bootstrapping after all and should be performed
by parts of the code which is directly responsible for
DOM content handling of modules. (i.e. loader.js)
This change though introduces a side-effect which was
not the case previously: Nested `.container` elements
trigger `rendered` events now. I've introduced this to
ensure we're also lazy loading modules and let them
handle their `rendered` events right after a redirect
which rerendered the layout. (Only `#layout` got a
`rendered` event then prior to this change)
2019-11-21 09:55:20 +01:00
Johannes Meyer
7f78c1a8a8
js: Properly initialize modules and don't trigger `rendered` events twice
...
Cleans up how our JS initializes module javascript. Previously the `rendered`
event only got fired upon page load if a module got loaded as well. This is
now decoupled and `rendered` events fire for all containers and the entire
layout upon page load.
Notable changes:
* A `load` event initializes modules and triggers `rendered` on `.container` and `#layout` elements
* Module javascript (module.js) is still lazy loaded but with a `beforerender` event, not `rendered`
* Previously `#layout` received a `rendered` event during bootstrapping, this is not the case anymore
* Initial search value preservation now got its own handler `events.onRenderedMenu()`
* Initial dashlet loading now git its own handler `events.loadDashlets()`
2019-11-20 16:22:56 +01:00
Johannes Meyer
47c2a8bdc1
js: Utilize `utils.objectsEqual()` in `actiontable.select()`
2019-11-20 16:22:56 +01:00
Johannes Meyer
2dbf9ca8ab
js: Properly parse/decode query params in `utils.parseParams()`
2019-11-20 16:22:56 +01:00
Johannes Meyer
5f739deea3
loader.js: Enhance __BACK__ handling
2019-11-05 15:04:23 +01:00
Johannes Meyer
da565f4d16
loader.js: Refresh left twice in case right has been closed..
...
..if the redirect target is `__BACK__`
2019-11-04 17:25:05 +01:00
Johannes Meyer
42e596f457
loader.js: Navigate back if redirect target is `__BACK__`
2019-11-04 16:03:54 +01:00
Johannes Meyer
a13d2b1e48
js: Introduce behavior modal.js
2019-11-04 12:46:30 +01:00
Johannes Meyer
c0cac6fe3c
loader.js: Allow to use a separate target for redirections
2019-11-04 12:46:30 +01:00
Johannes Meyer
0e5e046ae5
js: Split event handling and processing of form submits
2019-11-04 12:46:30 +01:00
Johannes Meyer
50bf126d36
js: Move function events.getLinkTargetFor to loader.js
2019-11-04 12:46:30 +01:00
Johannes Meyer
2896cbd781
loader.js: Avoid named capture groups to parse multipart content
...
fixes #3975
2019-10-07 14:35:49 +02:00
Johannes Meyer
a8dc609b62
loader.js: Add support for multipart content
...
refs #3953
2019-09-25 10:34:24 +02:00
Johannes Meyer
dda49b5ff1
loader.js: Drop redundant method `cacheLoadedIcons`
2019-09-25 10:34:24 +02:00
Johannes Meyer
da513a746d
loader.js: Add support for extra updates
...
refs #3953
2019-09-25 10:34:24 +02:00
Johannes Meyer
329f54cc96
ui.js: Don't generate a container id if its parent is #col1
...
refs #3953
2019-09-25 10:34:24 +02:00
Johannes Meyer
b15c012671
loader.js: Only pre-wrap a search response's html with a div
...
It's not required for all responses anymore.
refs #3953
2019-09-25 10:34:24 +02:00
Johannes Meyer
f98f988aff
Remove tristate form element
2019-09-23 08:36:24 +02:00
Johannes Meyer
5333bbf04d
loader.js: Also set title directly if layout is base target
2019-08-02 15:42:58 +02:00
Johannes Meyer
b31dd77812
Merge pull request #3676 from Icinga/feature/form-styling
...
Improve look of our forms
2019-07-30 08:26:08 +02:00
Johannes Meyer
5849c06314
storage.js: Don't try and allow to register events for non-local backends
2019-07-30 08:17:29 +02:00
Eric Lippmann
62d4e73d5a
Use session storage for sidebar state
...
The sidebar state is now maintained per tab/window because users view
different things in different tabs/windows. E.g. users work with a
specific module constantly clicking through the menu while having
other tabs/windows with some important dashboards open.
When the sidebar is closed in one tab/widnow, it should not close
the sidebar in the other tabs/windows.
2019-07-30 08:14:49 +02:00
Eric Lippmann
a1a18feb04
js/storage: Allow to set the storage backend
2019-07-30 08:14:49 +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
d0eca387ee
js: Also handle spinner elements which are not direct descendants of an element
2019-07-29 10:17:59 +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
2179518904
storage.js: Properly check if we have any keys left before clearing the storage
2019-07-26 07:36:17 +02:00
Johannes Meyer
f1db972cc5
ui.js: Only set tabindex=-1 on elements which are otherwise not focusable
2019-07-22 13:41:52 +02:00
Johannes Meyer
dd4cfaba50
navigation.js: Store and load sidebar collapse state from localStorage
...
resolves #3628
2019-07-18 09:43:22 +02:00
Johannes Meyer
f8d3f43965
js: Drop vendor library tipsy
2019-07-18 07:57:14 +02:00
Johannes Meyer
ec3a6b0572
ui.js: Don't use jquery blur shorthand but the element's native method
2019-07-18 07:57:14 +02:00
Johannes Meyer
b168c3d7db
js: Don't use jquery.focus shorthand anymore, but icinga.ui.focusElement
2019-07-18 07:57:14 +02:00
Johannes Meyer
f844094475
ui.js: Don't use deprecated .size() method but property .length
2019-07-18 07:57:14 +02:00
Johannes Meyer
6323a065ea
loader.js: Keep using the promise interface for complete callbacks
2019-07-18 07:57:14 +02:00
Johannes Meyer
5cf71c9bbd
js: Drop iframe-upload fallback for IE
2019-07-18 07:57:14 +02:00
Jennifer Mourek
f6a5f952bb
loader.js: Remove comment
2019-07-18 07:56:09 +02:00
Florian Strohmaier
5fe264be6a
JS: Fix errors
...
refs #3813
2019-07-18 07:56:09 +02:00
Johannes Meyer
8893db0cbc
js: Drop a StorageAwareMap entirely from storage if all keys expired
2019-07-18 07:43:42 +02:00
Johannes Meyer
cfa3af51db
storage.js: Don't return in `StorageAwareMap.forEach`
2019-07-17 13:12:41 +02:00
Johannes Meyer
5c290e1b68
collapsible.js: Rename event callbacks
...
`onExternalCollapse` => `onCollapse`
`onExternalExpansion` => `onExpand`
2019-07-17 13:12:41 +02:00
Johannes Meyer
c976eb48c9
storage.js: Properly handle invalid values
2019-07-17 13:12:41 +02:00
Johannes Meyer
2280551484
storage.js: Use substring instead of startsWith on strings
...
IE11 doesn't support startsWith..
2019-07-17 13:12:41 +02:00
Johannes Meyer
f11de266f4
storage.js: Avoid to call JSON.parse with an empty string
...
IE11 seems not to like this..
2019-07-17 13:12:41 +02:00
Johannes Meyer
9561057b81
storage.js: Allow to subscribe with multiple handlers to the same key
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
2fd7ba5aed
storage.js: Utilize a single event listener for all storage events
...
It doesn't make sense to register an event listener for every
created storage instance. They're all using entirely different
keys after all.
2019-07-17 13:12:41 +02:00
Johannes Meyer
2ac848828a
storage.js: Prevent conflicts with other apps accessing the same storage
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
383895fd92
storage.js: Pass the value to event subscribers of StorageAwareMap
2019-07-17 13:12:41 +02:00
Johannes Meyer
8937e11a09
storage.js: Properly handle if keys are entirely removed
2019-07-17 13:12:41 +02:00
Johannes Meyer
363486277b
storage.js: Rename Storage.subscribe to onChange
2019-07-17 13:12:41 +02:00
Johannes Meyer
c5beabf891
storage.js: Cleanup `StorageAwareMap` key corpses after 90 days
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
8377a2d096
storage.js: Don't use .bind() to define a callbacks context
2019-07-17 13:12:41 +02:00
Johannes Meyer
03fc052749
storage.js: Directly use scope `window` to access `localStorage`
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
e2cddc2d46
js: Introduce storage.js, a localStorage abstraction layer
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
9f858a9073
ui.js: Trigger event `layout-change` when the layout changes
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
Johannes Meyer
d6f7582df6
collapsibleContainer.js: Update documentation
2019-07-17 13:12:41 +02:00
Johannes Meyer
1032a944b4
collapsibleContainer.js: Properly set an collapsible's height
2019-07-17 13:12:41 +02:00
Johannes Meyer
618ca25aec
collapsibleContainer.js: Simplify implementation and make it more flexible
...
Handling is ok though the styles are outdated now and not working
2019-07-17 13:12:41 +02:00
Johannes Meyer
ffe638ee36
collapsibleContainer.js: Don't expect a data attribute for a container's id
2019-07-17 13:12:41 +02:00
Johannes Meyer
e6e43d07bf
collapsibleContainer.js: Cleanup and streamline behavior implementation
2019-07-17 13:12:41 +02:00
Johannes Meyer
66084d6d94
collapsibleContainer.js: Adjust id handling
...
Id's are unique. Making this assumption is fine since anyone
not abiding by this isn't my problem.
2019-07-17 13:12:41 +02:00
Florian Strohmaier
b73a608742
JS: Check collapsible containers for unique collapsible-id
2019-07-17 13:12:41 +02:00
Florian Strohmaier
d3e4fb6552
JS: Add code documentation
2019-07-17 13:12:41 +02:00
Florian Strohmaier
545d3355a9
JS: Use can-collapse to flag containers with sufficient height
2019-07-17 13:12:41 +02:00
Florian Strohmaier
b07ffd4987
JS: Implement collapsible-container behavior
2019-07-17 13:12:41 +02:00
Johannes Meyer
f6d40a9d1c
loader.js: Directly set the window's title for full layout requests
...
refs #3851
2019-07-15 08:24:44 +02:00
Loei Petrus Marogi
302422d814
Allow to fully customize click and submit handling
...
resolves #3767
2019-05-27 14:34:38 +02:00
Johannes Meyer
b4979b75a9
Merge pull request #3723 from Icinga/feature/ctrl-click-does-not-open-links-in-new-tab-3722
...
Make ctrl-click open new tab
2019-05-24 13:01:52 +02:00
Jennifer Mourek
b6f8df5ddc
Disallow new tab opening on anything but anchors
2019-05-24 11:09:05 +02:00
Johannes Meyer
82d6b22697
Merge pull request #3775 from Icinga/bugfix/improve-mobile-menu
...
Improve mobile menu
2019-05-24 10:56:02 +02:00
Jennifer Mourek
1c666d88e6
Prevent new tab opening in tables and href="#"
2019-05-23 11:04:11 +02:00
Jennifer Mourek
26d696372f
Exclude multiselect rows from the open new tab feature
2019-05-21 15:06:16 +02:00
Florian Strohmaier
574c76ab42
Improve mobile menu
2019-05-06 14:49:41 +02:00
Johannes Meyer
43c87d2388
loader.js: Return in onComplete upon handled redirects
...
Got changed with f12a5741b8
. Triggering
rendered events for stuff that's never displayed doesn't seem right.
2019-04-30 09:23:59 +02:00
Johannes Meyer
50f5aa0ac3
Revert "utils.js: Utilize ids of forms and elements in getCssPath"
...
This reverts commit c835f02953
.
2019-04-25 10:11:45 +02:00
Johannes Meyer
f72aa291bc
Merge pull request #3610 from Icinga/fix/window-id-cannot-be-used-to-differentiate-containers-3609
...
Fix window id cannot be used to differentiate containers
2019-04-17 11:38:48 +02:00
Johannes Meyer
c835f02953
utils.js: Utilize ids of forms and elements in getCssPath
...
They're now reliable again :)
fixes #2238
2019-04-17 11:25:10 +02:00
Johannes Meyer
4900040d47
js: Restore previous title when closing right column
...
fixes #3654
2019-04-16 09:29:42 +02:00
Johannes Meyer
d8c4fcc517
Merge pull request #3661 from Icinga/feature/preserve-scroll-position-upon-form-submits
...
Preserve scroll position upon form submits
2019-04-16 08:04:15 +02:00
Johannes Meyer
cb3528a7be
js: Don't scroll to re-focused elements after auto-refreshes
...
refs #2048
refs #3295
refs #3492
refs #3518
2019-04-15 15:42:14 +02:00
Johannes Meyer
f54f2f8627
js: Prevent flickering when refreshing scrolled content
2019-04-15 14:27:14 +02:00
Eric Lippmann
915c7b8fe5
Merge pull request #3504 from Icinga/fix/collapsible-sidebar-issues-3187
...
Fix collapsible sidebar issues
2019-03-21 09:09:27 +01:00
Jennifer Mourek
2c1abe13a1
Make ctrl-click open new tab
...
refs #3722
2019-03-20 14:19:14 +01:00
Jennifer Mourek
b3b80fdc31
Make active first-level nav items better distinguishable
2019-03-20 11:07:39 +01:00
Jennifer Mourek
2e5515274e
Adjust sidebar lug size and reduce flyout delay
2019-03-20 11:07:39 +01:00
Johannes Meyer
27569d09d8
loader.js: Preserve scroll position also for form submits
...
Restores the scroll position if:
* it's been a POST request
* the source and target url path is the same
* the target's url params do not change significantly
2019-01-10 15:32:28 +01:00
Johannes Meyer
d2214ef0e4
loader.js: Pass-through previous request when peforming a redirection
2019-01-10 15:31:39 +01:00
Johannes Meyer
29a8184548
loader.js: Remember a request's method
2019-01-10 15:30:48 +01:00
Johannes Meyer
2a5a403573
utils.js: Add new method objectsEqual()
2019-01-10 15:30:05 +01:00
Eric Lippmann
f8295ea825
Revert "Fix menu flickering on reload and broken layout w/o JS"
...
This reverts commit 3b06f06a04
.
Breaks announcements.
2018-11-20 10:17:27 +01:00
Eric Lippmann
3b06f06a04
Fix menu flickering on reload and broken layout w/o JS
...
fixes #3629
fixes #3630
2018-11-20 10:06:41 +01:00
Eric Lippmann
f0f9ab0eb7
JS: Simplify Date.isDst()
2018-11-16 09:00:32 +01:00
Eric Lippmann
fbc7598a6b
JS: Simplify Date.getStdTimezoneOffset()
...
refs #3607
2018-11-16 09:00:32 +01:00
h0rmiga
d9b337a213
JS: Fix DST detection
...
refs #3607
Signed-off-by: Eric Lippmann <eric.lippmann@icinga.com>
2018-11-16 09:00:19 +01:00
Johannes Meyer
c8a49414b1
js: Append a unique container id to the Window-Id
...
Generates a semi-random id for containers other than the menu and col1.
This id is then appended to the Window-Id of every request separated by
an underscore: `window-id_container-id`
refs #3609
2018-11-07 12:44:25 +01:00
Johannes Meyer
8212c51f8d
js: Already set `window.name` prior bootstrapping our js runtime
...
Makes sure that the Window-Id already generated and utilized by the
server on the first request is used by subsequent requests instead
of a new one.
Also avoids that concurrent running id-less requests compete about
which one may set his assigned id. Now any subsequent request
already transmits the id assigned to the first one.
And it resets `window.name` in case the user performs a manual
refresh so that the id used by the server is set/utilized.
refs #3609
2018-11-07 09:13:16 +01:00
Florian Strohmaier
d1cbc4b05c
JS: Remove excessive scroll events
2018-10-16 15:41:33 +02:00
Eric Lippmann
84e0c0c4fb
Merge pull request #3518 from Icinga/fix/anchor-navigation-not-working-3492
...
loader.js: Make anchor navigation working again
2018-07-16 10:00:35 +02:00
Johannes Meyer
5f4aa1e296
loader.js: Make anchor navigation working again
...
fixes #3492
2018-07-10 10:50:31 +02:00
Eric Lippmann
d18d05ccee
Introduce ApplicationStateHook
...
refs #2835
2018-07-09 16:28:25 +02:00
Johannes Meyer
990df95f36
loader.js: Allow to force HTTP to be used for JS redirection
2018-07-04 14:44:03 +02:00
Johannes Meyer
9294c830f8
tipsy: Don't use opacity but rgba to avoid having transparent text
...
refs #3418
2018-04-26 13:39:50 +02:00
Eric Lippmann
7fc9d7995f
Merge pull request #3425 from Icinga/fix/avoid-unnecessary-search-requests-3348
...
Don't search as long as the user is typing
2018-04-25 03:08:47 -04:00
Johannes Meyer
c2b3bbb87b
events.js: Don't search as long as the user is typing
...
500ms is for the average typist. Still fast enough, imho.
refs #3348
2018-04-24 12:33:04 +02:00
Johannes Meyer
9857021d2c
Revert "loader.js: place focus at the end of text inputs"
...
This reverts commit d1fd7e4be7
.
Browsers seem to do this on their own natively. Way better.
refs #3348
2018-04-24 11:18:10 +02:00
Alexander A. Klimov
41b105136d
Preserve collapsed FilterEditor subtrees across auto-refreshes
...
refs #2964
2018-04-06 13:54:51 +02:00
Alexander A. Klimov
38438449e4
Revert "Performance data: render pie charts without freezing the UI"
...
This reverts commit f2b2b6a91a
.
refs #3344
2018-04-06 09:36:24 +02:00
Johannes Meyer
7483a168f9
actiontable.js: Use `event.currentTarget` instead of the closest tr
...
This event is triggered due to delegation. If any onclick event is able
to bubble up this far that it gets triggered we can safely use whatever
it has been triggered for. (i.e. it can only be a tr[href])
refs #3298
2018-01-22 13:23:28 +01:00
lippserd
0b9ae48530
Merge pull request #3288 from Icinga/bugfix/performance-problem-lots-of-performance-data-2894
...
Performance data: render pie charts without freezing the UI
2018-01-19 16:16:54 +01:00
Alexander A. Klimov
f2b2b6a91a
Performance data: render pie charts without freezing the UI
...
refs #2894
2018-01-19 16:14:42 +01:00
Alexander A. Klimov
68870ca411
Icinga.Loader.prototype.renderContentToContainer(): preserve scroll position despite the focus
2018-01-19 15:32:54 +01:00
lippserd
f92c35c193
Merge pull request #3262 from Icinga/bugfix/browser-history-multiple-columns-2779
...
Make navigation via browser history working as expected
2018-01-17 12:03:03 +01:00
Alexander A. Klimov
5a7ecb825a
Drop unneccessary browser history steps
...
... which are non-desired columns contents combinations
refs #2779
2018-01-16 12:25:22 +01:00
Alexander A. Klimov
1f61744b57
Make search reset control working across auto-refresh
...
refs #2753
2018-01-15 15:09:50 +01:00
lippserd
83faa2671c
Merge pull request #3174 from Icinga/fix/fullscreen-layout
...
Don't discard fullscreen when detecting the layout
2017-12-15 10:13:05 +01:00
Eric Lippmann
cb83a7dea3
JS: Always request application-state
...
Icinga Web 2 version 2.5.0 suspends auto-refresh if the tab is inactive.
This also pauses the application-state requests which are intended to refresh the session and announcements.
If a tab is inactive for longer than the PHP session timeout (session.gc_maxlifetime in php.ini), users are automatically logged out.
With this patch Web 2 will always request application-state. Even if auto-refresh is disabled.
2017-12-04 14:25:23 +01:00
Eric Lippmann
e77c3c8169
Don't take fullscreen into account when detecting the layout
...
The fullscreen-layout class is just a layout modifier.
2017-11-29 15:12:51 +01:00
Alexander A. Klimov
48133aae91
Flyover: select #main instead of div#main
2017-11-27 16:51:55 +01:00
Alexander A. Klimov
59054dd01c
Collapse all expanded flyovers on any click not inside any flyover
2017-11-27 16:35:18 +01:00
Alexander A. Klimov
8afd2f8a32
Handle multiple toggles per flyover
2017-11-27 16:32:52 +01:00
Eric Lippmann
47ca9bd32f
JS: Fix sidebar position
2017-11-27 15:12:15 +01:00
lippserd
8f1f8d4471
Merge pull request #3100 from Icinga/feature/expandable-content
...
Implement persistent "Show more" spoilers
2017-11-27 14:44:15 +01:00