Commit Graph

811 Commits

Author SHA1 Message Date
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 27cd34dd2d js: Add new jQuery plugin `getData()` 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 23590c5e20 js: Remove redundant vendor libraries 2019-07-29 09:52:52 +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 3310bbc680 js: Patch vendor library sparkline to ensure compatibility with jQuery v3 2019-07-18 07:57:14 +02:00
Johannes Meyer f8d3f43965 js: Drop vendor library tipsy 2019-07-18 07:57:14 +02:00
Johannes Meyer c100654412 js: Integrate vendor library jquery-migrate 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
Johannes Meyer 97d5b39662 helpers.js: Drop polyfills for IE8 and IE9 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
Florian Strohmaier 77c8111162 JS: Update jquery to 3.4.1
refs #3813
2019-07-18 07:56:09 +02:00
Jennifer Mourek 55d35b9e5b Remove jquery 1.11 dependency
refs #3784
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