Commit Graph

230 Commits

Author SHA1 Message Date
Thomas Gelf f25f4f06d8 js/loader: disable click handler block on refresh
This used to be ways too slow when many elements where involved. Left
the old code there as a reminder. In case we really need it we should
use something faster like an overlay or so.
2014-11-01 01:11:12 +01:00
Matthias Jentsch 6124f984ee Adjust scroll position on container after triggering the 'rendered' event
Prevent behaviors from altering the current scroll-position on page reload when refreshing or changing the focus.

fixes #7269
2014-10-14 15:50:15 +02:00
Matthias Jentsch ee63dfd310 Update navigation when the url of the main column changes 2014-10-01 17:47:21 +02:00
Matthias Jentsch fa2c9e46ed Cleanup comments and whitespaces 2014-10-01 16:48:38 +02:00
Matthias Jentsch ef2f332869 Do not refresh a container when form input was changed or a form element is focused
Listen for changes in form elements and abort all reloads that contain a form with
at least one changed form element. Do not refresh containers that contain a focused form
element, except of elements with autofocus, to preserve form elements with a dropdown.
Only focus autofocus elements when there is currently no other selection.

refs #7146
refs #5537
fixes #7162
2014-09-19 15:48:44 +02:00
Matthias Jentsch 7f0a2d540b Tell navigation behavior about changes in active menus
fixes #7181
2014-09-12 15:01:25 +02:00
Matthias Jentsch ad53f7ad3d Use EventEmitter class as a way to delegate events from behaviors to the dom 2014-09-12 09:09:21 +02:00
Matthias Jentsch b7c207a9cb Do not drop preselection in the navigation on reload 2014-09-09 15:32:07 +02:00
Thomas Gelf ef847801f2 js/loader.js: preserve scrolling position...
...on autorefresh and reset it otherwise.

fixes #6285
fixes #6988
2014-09-02 20:11:37 +02:00
Thomas Gelf f12a5741b8 js/loader: postpone redirection handling
Redirections should not be executed unless the original request has been
terminated and removed from pending requests.

fixes #6989
2014-09-02 19:05:49 +02:00
Thomas Gelf 512e7d516b js/loader: Handle __SELF__ in redirection URLs
That's one more step to smoothly handle #! URLs, especially when you
are not yet authenticated.

refs #6935
2014-08-19 10:00:29 +02:00
Johannes Meyer 3105c2059e Remove license headers from all files
refs #6309
2014-07-15 13:43:52 +02:00
Thomas Gelf 329b1cf960 js/loader: correctly get rid of data
I'm unsure whether this is a jQuery bug or not. The removeData()
function has no effect unless there is a matching data attribute.
Makes IMO no sense, as adding the attribute automagically adds data,
so why should removing it differ.

This patch makes sure that the corresponding attribute is removed too.
Fixes "dashboard sometimes flickering on refresh".

refs #6536
2014-07-08 20:10:44 +02:00
Thomas Gelf bbc0c36225 js/loader: remove pending request on form redirect
Our redirection helper catching forms redirecting to their source
while being shown right-hand left a pending request. Abort was triggered,
but had no effect as the request has already been completed.

fixes #6619
2014-07-07 20:12:49 +02:00
Thomas Gelf 590db51255 js/loader: handle form redirections automagically
An XHR redirection in a right-side container pointing to the URL
shown on the left should close it's own container and refresh the
lefthand one.

refs #6436
fixes #6435
2014-06-30 16:19:05 +02:00
Thomas Gelf 30106a9cbd js/loader: autorefresh requests should run parallel
The check whether a request was already running failed as soon as
another request was activ. Now they run as they should.
2014-06-25 20:15:44 +02:00
Thomas Gelf 0604d30348 js/loader: stop pending subcontainer requests
When redrawing a container we should cancel it's subcontainers pending
requests. This also fixes stopPendingRequestsFor(), it didn't really
work before.
2014-06-24 07:01:37 +02:00
Thomas Gelf 473a705e2e Assign unique ids to dashlets and subcontainers
Without this we have no chance to cancel pending requests for dashlets.

fixes #6552
2014-06-24 06:40:08 +02:00
Thomas Gelf 6f19bb13b8 js/loader: ignore focus on autosubmitting elements
Autorefresh response is not rendered while your focus sits in a form.
This is not so useful for autosubmitting elements, let's ignore them.
2014-06-23 14:04:02 +02:00
Thomas Gelf 23ed744747 params/_render: replace it everywhere
Cleaning up controllers and JS, using headers only and respecting
history.
2014-06-22 20:07:44 +02:00
Thomas Gelf aded901aa5 js/loader: reload CSS BEFORE redirecting 2014-06-22 20:01:10 +02:00
Thomas Gelf 41b8b8cf31 js/loader: remove history-related noisy log entry 2014-06-22 19:58:58 +02:00
Thomas Gelf 180a6f08f5 js/loader: notifications should survive new layout
Once replacing the whole layout we used to override notifications.
This is now fixed, they are going to be detached and re-attached
before and after re-rendering the page content.
2014-06-22 19:55:50 +02:00
Thomas Gelf 78193137f0 config/modules: show metadata, improve usability
Well... I didn't want to commit this before creating single-button
forms for enabling/disabling modules. However part of this accidentally
made it through, so let's finish it.

Still some work to do, but it already looks far better like this.

refs #4095
2014-06-21 02:27:27 +02:00
Thomas Gelf 747083d322 JS/history: handle also requests out of containers
On login/logout (not only) we have requests not rendered to containers.
History handling only cared about them and failed.

fixes #6466
2014-06-21 01:57:59 +02:00
Thomas Gelf a79f786546 JS/loader: add icon cache prototype
Just playing around, I'm still unsure whether this really helps. The
motivation behind this patch are icons loaded again after not being
displayed for a little while.

Remains disabled unless we know whether and for which scenarios
(cache disabled, HTTPS...) this really helps.
2014-06-20 16:18:10 +02:00
Thomas Gelf 06a8803242 JS/loader: add failed requests to history
It's confusing if they are handled differently
2014-06-20 16:16:04 +02:00
Thomas Gelf bd57f8f02a JS/loader: don't autorefresh while editing
We would loose our focus if autorefresh takes place. So we don't render
the new content in case a form field in the very same container carries
the focus. It would be great to have a better solution one far day, but
for now it plays fine like this.
2014-06-20 13:52:05 +02:00
Thomas Gelf 28c61c2595 JS/XHR: last commit was missing the JS part 2014-06-20 13:22:53 +02:00
Thomas Gelf c3eae11624 JS/IE8: fix IE8 error caused by focus()
No more error when using the jQuery wrapper. Focus handling is pretty
outdated, needs special care as soon as we have auto-refreshing search
fields.
2014-06-12 17:22:17 +00:00
Marius Hein 06296f29d8 UI/Sparklines: Change sparkline code to serverside only
fixes #6124
2014-06-06 16:35:33 +02:00
Marius Hein 4587f26476 Revert "Ui/Sparklines: Remove img src before putting it into DOM"
This reverts commit a75796c64d.
2014-06-06 14:41:57 +02:00
Marius Hein a75796c64d Ui/Sparklines: Remove img src before putting it into DOM
SVG chart was fetched although we removed image tags
from DOM. This happens when text is converted into
browser DOM model to use with javascript. Small
regex remove img source attribute to avoid using
network bandwidth for unknown resources.

fixes #6124
2014-06-06 13:58:01 +02:00
Thomas Gelf 2bf58b034b JS/cleanup: separate redirect header handling 2014-06-05 19:37:12 +00:00
Thomas Gelf 4646b74fbc JS/cleanup: start to clean up response handling
First step: get rid of the messy workaround for the problem that
notifications got lost once the whole body is re-rendered. This
should be solved either on server side or by detaching and re-
attaching existing notifications in such scenario.
2014-06-05 18:52:03 +00:00
Thomas Gelf ca6b373be2 JS: fix multiselect burning resources
Especially on browsers with slow JS like IE8 iterating again and again
over all rows used to harm response rendering. Immagine a dasboard with
a total of a few hundred rows refreshing every 10 seconds while taking
3 secs to render one dashlet... it's far better right now.

refs #6417
2014-06-05 15:16:03 +00:00
Thomas Gelf 99aae5a0d9 JS/XHR: get ready to get XHR redirect-aware
These are just the first steps, there is more to come
2014-06-05 03:37:36 +00:00
Gunnar Beutner d01a98b7e6 Fix some of the time-related grammar mistakes
This updates some of the messages to use "For"
instead of "Since" where appropriate.

fixes #5981
2014-05-29 11:30:08 +02:00
Thomas Gelf e7e7ae72ba Encoding: decode encoded titles
Related to the last commit, forgot to decode titles
2014-05-28 21:39:34 +00:00
Thomas Gelf 88460189cd Encoding: no ASCII chars > 127 in HTTP headers
Had quite some trouble with this, decided to URL-encode titles and
notifications.
2014-05-28 21:34:36 +00:00
Thomas Gelf cf6f1f8bf4 icinga/loader.js: play nice with invalid responses
Even responses with no HTML or no root node or similar must be rendered
successfully to their containers.
2014-05-28 15:59:42 +00:00
Thomas Gelf 886c8b1231 js/notifications: fixed target=ignore notification
Ongoing error handling cleanup silently dropped notifications for
requests with "invalid" target (e.g. commands not redirecting after
submission - they should not exist, but they do).

This is redundant code, but that's ok for now - response handling will
be restructured.

fixes #6327
refs #6280
2014-05-27 10:54:44 +00:00
Thomas Gelf 70ba36aad6 notifications: improve client- and serverside
This is just a first step, trying to catch a few gotchas:

* it doesn't send notifications to the browser when issueing a redirect
  as redirects can currently not be catched in jQuery response handlers
* it tries to find a better notification handling place in the response
  handler (JS) - still imperfect
* it explicitely stores sessions once modified by notifications. Still
  need to crosscheck whether this is really needed and how we can get
  rid of this.

refs #6280
2014-05-26 14:41:47 +00:00
Thomas Gelf f32eab627a js/forms: treat buttons like input-buttons
This fixes a few autosubmission-detection woes.
2014-05-20 23:55:18 +00:00
Thomas Gelf ad91c420a0 js/loader + css: highlight containers loading slow
I missused the "impact" CSS class for this as it perfectly fit's this
use case. A container loading slow IS an impact. Added CSS transitions,
this way it feels better on modern browsers. The longer it takes to
load a page the darker will get it's background.
2014-05-20 14:58:58 +00:00
Thomas Gelf cf82ac68cc Improve console log message on errors like 404
Former '404 Not found' plus weird HTML snippet is now: '404 Not Found:
 Page not found. Enabling the "bpapp" module might help!'
2014-05-09 12:08:38 +00:00
Thomas Gelf 2a28e60bb7 Do not change browser title on autorefresh
fixes #6168
2014-05-09 10:13:49 +00:00
Matthias Jentsch d0c56126b8 Fix inline pie reload.
refs #6124
2014-05-07 17:03:27 +02:00
Johannes Meyer c711e3405d Fix cli default log configuration and js-loader debug message 2014-05-05 16:17:21 +02:00
Matthias Jentsch c641988233 Preserve multiselection during refresh
refs #5765
2014-04-28 09:48:06 +02:00
Matthias Jentsch b16c6efa05 Add PieChart to display hosts and services, improve layout and fix flag
checkboxes

refs #5765
2014-04-28 09:48:06 +02:00
Matthias Jentsch 081b5072a6 Fix layout of MultiController views
refs #5765
2014-04-28 09:48:06 +02:00
Matthias Jentsch 3b2bb3c4fc Move functions to perform single, multi and range-selection into the ui module
refs #5765
2014-04-28 09:48:05 +02:00
Matthias Jentsch 6d303f1c42 Add abillity for multi and range-selection to events.js
Add the abillity to select multiple rows, with a multi-selection using the
CTRL-key or a range-selection using the shift-key. Also fix several issues in
the Multi-Controller of the Backend.

refs #5765
2014-04-28 09:48:05 +02:00
Thomas Gelf 649ebef287 One thing less TODO, had already been fixed two lines below 2014-04-17 16:24:40 +00:00
Johannes Meyer 7440d61189 Allow target being extended by Icinga.Loader.loadUrl 2014-04-01 11:46:44 +02:00
Thomas Gelf d0fd25d4ef Extend module event handler capabilities, allow for easier use
* introduce 'rendered' event for modules
* use this.module.on() instead of registerEventHandlers()
* no CSS filter creates event handlers on module containers
2014-03-31 08:38:00 +00:00
Thomas Gelf afc905f090 Improve class handling on container module switch 2014-03-28 19:57:24 +00:00
Thomas Gelf fdc39189aa Fix naming error in last commit 2014-03-26 18:18:00 +00:00
Thomas Gelf 1f6616e7d7 Remove autorefresh data flag for containers no longer refreshing 2014-03-26 18:14:29 +00:00
Thomas Gelf 4b47841dc2 I hate flickering search result, fixed one more time 2014-03-26 18:01:20 +00:00
Matthias Jentsch 15723f088b Include SVG piecharts in perfData helpers
When no JavaScript is available, SVG piecharts will be shown instead of the
jQuery sparklines.

fixes #5865
2014-03-26 14:56:35 +01:00
Thomas Gelf 8d888b3396 Do not hammer web server on auto-refreshing failures 2014-03-26 10:35:45 +00:00
Thomas Gelf 8dbf7b0729 Allow IcingaWeb to trigger a browser-side CSS reload 2014-03-26 07:41:23 +00:00
Thomas Gelf ac90ccfd22 Activate menu search form on URL path match and ignore params 2014-03-25 12:30:05 +00:00
Thomas Gelf 36f31f9f02 Fix search form autosubmission and response handling 2014-03-25 12:13:42 +00:00
Thomas Gelf edc3deeec8 Handle anchors in links 2014-03-20 11:25:10 +00:00
Thomas Gelf 77e88b24dd Merged old bug, sorry 2014-03-17 16:34:37 +00:00
Thomas Gelf e0c93d6ca7 JS cleanup
* Precedence rules: skip autorefresh if click is pending
* Clean up the attr VS data mess
* More steps towards a column-count-ignorant GUI
2014-03-17 17:10:03 +01:00
Thomas Gelf f1f1813b04 Activate only the first match if multiple menu items carry the same URL 2014-03-12 00:44:30 +01:00
Thomas Gelf 959967c646 Fix logout button "sometimes not working" and similar 2014-03-08 23:58:19 +01:00
Thomas Gelf ac0980b111 Just comments 2014-03-08 16:20:30 +01:00
Thomas Gelf d1c5e6da14 Sorry, no default values for JS functions 2014-03-08 12:17:56 +01:00
Thomas Gelf 71aea4dfc7 Responses with not output (container: ignore) must of course be handled in JS 2014-03-08 12:07:49 +01:00
Thomas Gelf d21a356a0b Handle notifications on client side (JS) 2014-03-07 23:19:02 +00:00
Thomas Gelf 097d3a94a4 JS "impact" handling needs improvement, first step here 2014-03-06 18:53:31 +00:00
Alexander Klimov b410ebeed6 Remove unnecessary spaces at end of line 2014-03-06 13:08:11 +01:00
Thomas Gelf 25032204ee Reorder history logic 2014-03-06 09:41:22 +00:00
Thomas Gelf 9a485df81a Lot's of JS changes 2014-03-04 13:08:29 +00:00
Thomas Gelf ed2b330843 A few JS files where missing 2014-02-21 14:03:49 +00:00