Commit Graph

184 Commits

Author SHA1 Message Date
Johannes Meyer 8e94f3e58e Revert "Revert "Fix logout loop (testing), #2""
This reverts commit 967c3552e5.
2015-10-02 11:46:44 +02:00
Johannes Meyer 967c3552e5 Revert "Fix logout loop (testing), #2"
This reverts commit 6affad6895.
2015-10-02 11:36:06 +02:00
Johannes Meyer e99cdb66ef loader.js: Do not push redirects to history 2015-10-02 11:36:06 +02:00
Eric Lippmann 6affad6895 Fix logout loop (testing), #2
Quick and dirty fix.
2015-10-01 10:50:33 +02:00
Eric Lippmann 5f7f0a9e89 Fix logout loop (testing)
If this commit breaks anyhting, feel free to revert it.
2015-10-01 10:30:18 +02:00
Johannes Meyer 67a28a4b47 js: Do not re-open the detail url if it's the origin of a redirect
refs #5600
2015-09-25 13:58:52 +02:00
Matthias Jentsch 4e2595c09b Fix history breaking on autorefresh 2015-08-28 16:06:07 +02:00
Matthias Jentsch ef8ee3302b Improve JS error handling
Refresh URL after loading erroring containers, when the user refreshes he expects to reload the page he just loaded and not the previous one.
2015-08-26 15:23:58 +02:00
Matthias Jentsch 96e3845f46 Improve handling of navigation on link closes
Do not drop active menu when closing the left column, unless there is a different active menu that matches the current state.

fixes #9761
2015-08-25 16:55:10 +02:00
Johannes Meyer e3d99cb00d loader.js: Add support for ajax progress timer
refs #8369
refs #8848
2015-08-20 14:38:03 +02:00
Matthias Jentsch 34bf6bb11e Stop refresh on any error unless its an auto-refresh
Links with the same URL may still be user-triggered actions, which should cause the auto-refresh to be stalled. The old implementation assumed that user-triggered requests always have a different URL.

fixes #8975
2015-08-18 16:47:45 +02:00
Matthias Jentsch 0c2afe3c3b Clean up and conform to coding guidelines 2015-08-18 16:47:45 +02:00
Matthias Jentsch 7c7881659d Always replace requests in loader by non-GET requests
Fix issue that caused form submits to be aborted when there's already a pending autosubmit for the same url.

fixes #9024
2015-08-18 11:42:43 +02:00
Matthias Jentsch 6ba86619bc Assure that the history is updated when calling 'rendered'
fixes #9819
2015-08-11 17:41:24 +02:00
Johannes Meyer 153f3ba2f9 js: Drop function events.handleAnchor() and ui.scrollContainerToAnchor()
There is ui.focusElement() now which handles ids as well.

refs #8615
2015-08-06 11:51:57 +02:00
Matthias Jentsch ecdc03a2d7 Fix selection lost after pushing refresh
Remove old row action code that interfered with action table behavior.

refs #8623
2015-07-29 11:41:53 +02:00
Johannes Meyer 0f2351ff1d js: Fix XHR loading of URLs in case window.FormData is not supported
refs #8758
2015-07-22 13:29:44 +02:00
Johannes Meyer 5e1ea958b4 js: Correctly process the redirectUrl-meta tag for successful frame uploads
refs #8758
2015-07-21 16:38:52 +02:00
Johannes Meyer 93fbb0231c loader.js: Split processRedirectHeader() to allow partly reuse
refs #8758
2015-07-21 16:37:21 +02:00
Johannes Meyer 9471c3c574 js: Make use of the _frameUpload parameter when submitting a form..
..to an iframe. This ensures that stuff like notifications are immediately
visible to the user after successful form submission.

refs #8758
2015-07-21 15:43:47 +02:00
Johannes Meyer 37b87eb284 js: Add fallback in case XHR file uploads are not possible
refs #8758
2015-07-20 10:52:28 +02:00
Johannes Meyer 6d4d99aa62 js: Use window.FormData instead of just FormData
refs #8758
2015-07-15 15:49:34 +02:00
Johannes Meyer c1d9cde312 js: Properly submit multipart/form-data
This is not IE <10 compatible. Fix follows. ;-)

refs #8758
2015-07-15 15:25:40 +02:00
Johannes Meyer 3098c21c17 loader.js: Push failed requests to history
The commit ae68e8aec4 reverted
earlier seems to be supposed to do exactly what this one does now.
Prior, the commits ae68e8aec4 and
8bb0e4e0a0 were effectively
neutralizing each other. Quick tests of how Web 2 handles failing
requests while interacting with the browser's history were successful.
If this change breaks something else (again?), leave me a note and do
*not* fix it straight away..
2015-07-06 16:56:44 +02:00
Johannes Meyer b4fe91bb2f Revert "Ajax onFailure: Write component URL to container"
This reverts commit ae68e8aec4.

fixes #9042
fixes #9544
2015-07-06 16:43:49 +02:00
Matthias Jentsch 975a834bd4 Remove unused code and clean up 2015-06-30 12:28:41 +02:00
Johannes Meyer 88f5bb8368 js: Relax check whether to switch to single column layout upon redirect
This fixes the problem when redirecting from a form using the same route
as in the leftmost column but with a different querystring, that one gets
the same route shown twice.
2015-05-22 16:54:59 +02:00
Johannes Meyer 54a370ca22 Merge branch 'master' into bugfix/make-all-views-dashboard-compliant-7876 2015-04-20 11:15:04 +02:00
Matthias Jentsch aa409bda72 Fix formatting of js error log entries generated from responses
Replace multiple whitespace characters with a single one and remove linebreaks.

refs #8711
2015-04-16 12:15:59 +02:00
Johannes Meyer be05d3a73a Fix dashboard header handling
refs #7876
2015-04-15 13:23:34 +02:00
Eric Lippmann 2e1ae185fb Retain detail URL if the layout is rerendered after a redirect
refs #8605
2015-03-13 04:04:58 +01:00
Eric Lippmann 7f94858b8d Add JSDoc to Icinga.Loader.prototype.processRedirectHeader()
refs #8626
2015-03-11 21:26:44 +01:00
Eric Lippmann 031f9ddc84 Don't always redirect to the current window's URL if the redirect URL is __SELF__
Please see code comments for an explanation.

refs #8626
2015-03-11 21:24:56 +01:00
Johannes Meyer 3dce0e434a Add more sophisticated fix for keeping the focus after an autorefresh
fixes #8350
2015-02-17 09:24:38 +01:00
Marius Hein ea57e7a786 History: Do not write abort requests to browser history
Remove req.historyTriggered and introduce req.addToHistory.
2015-02-16 15:56:50 +01:00
Marius Hein ae68e8aec4 Ajax onFailure: Write component URL to container
This is needed that history can push the correct detail url
2015-02-16 14:11:11 +01:00
Thomas Gelf d10beb7604 js: no console.log. please! 2015-02-09 15:26:55 +01:00
Matthias Jentsch b56eb7b669 Fix keyboard navigation
Store current focus position before reload and apply it after rendering.

fixes #8350
2015-02-04 18:01:06 +01:00
Eric Lippmann 6bae2e0a53 Note that our license is GPL v2 or any later version in our license header instead of pointing to the license's URL 2015-02-04 10:52:27 +01:00
Eric Lippmann 5b4fab0750 Add license header
This time without syntax errors hopefully :)
2015-02-03 16:27:59 +01:00
Eric Lippmann 5fa2e3cfdc Revert "Add license header"
This reverts commit 338d067aba.
2015-02-03 16:16:26 +01:00
Eric Lippmann 338d067aba Add license header
fixes #7788
2015-02-03 15:51:04 +01:00
Johannes Meyer 8bb0e4e0a0 Failure requests: Fix auto refresh and history II
Allow to change url's in history and stop auto auto refresh if
the container URL is not up to date.

Use variable after ajax call and the check is more robust.
2015-02-02 16:52:36 +01:00
Marius Hein bc69a3b20f Revert "Failure requests: Fix auto refresh and history"
This reverts commit 8c758a9f12.
2015-02-02 16:40:05 +01:00
Marius Hein 67a426580d loader: Remove gray out on complete handler
A failure did not remove the impact class which colorize
the background gray.
2015-02-02 15:20:12 +01:00
Marius Hein 6555a2ec0a Menu: Move request handling to complete
If a failure occur the menu is still working.
2015-02-02 15:03:36 +01:00
Marius Hein 8c758a9f12 Failure requests: Fix auto refresh and history
Allow to change url's in history and stop auto auto refresh if
the container URL is not up to date.
2015-02-02 13:32:40 +01:00
Marius Hein 190c1e8f04 Revert "Revert "Dashboard: Always replace title""
This reverts commit d1f13819e4.

Please do not ask. This was no syntax error.
2015-02-02 12:04:28 +01:00
Marius Hein d1f13819e4 Revert "Dashboard: Always replace title"
This reverts commit c0c0e7d9e5.

Syntax error
2015-02-02 12:01:40 +01:00
Marius Hein c0c0e7d9e5 Dashboard: Always replace title
This is needed if an error occurs and the exception title was rendered
into the container.
2015-02-02 12:00:08 +01:00
Marius Hein 7b8332ccd8 Notifications do not disappear after autorefresh
This is not affected anymore because the errors goes directly
into the container. But this commit fixes the codes if someone
use the notifications in the loader. Also remove unused
variable this.exception.

fixes #6278
2015-01-30 15:25:12 +01:00
Marius Hein 6ec2ee753d Render error messages in the container itself
fixes #6280
2015-01-30 14:50:25 +01:00
Thomas Gelf 95f9bebdc5 js/loader: support multi-container redirection
Redirections to #!-separated URLs (multiple containers) should also
work when not re-rendering the whole layout.
2014-11-01 01:23:55 +01:00
Thomas Gelf 6298d303c4 js/loader: trigger 'beforerender' container event 2014-11-01 01:12:59 +01:00
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