From f20f27927d3f9bd2a348074311c563c5e2fac911 Mon Sep 17 00:00:00 2001
From: Thomas Gelf <thomas@gelf.net>
Date: Fri, 21 Feb 2014 10:17:41 +0000
Subject: [PATCH] Window unload event support for most browsers

* Also fixes "Webserver gone away" sometimes appearing on page reload
---
 public/js/icinga/events.js | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/public/js/icinga/events.js b/public/js/icinga/events.js
index e80dea7de..7dbdc2e3f 100644
--- a/public/js/icinga/events.js
+++ b/public/js/icinga/events.js
@@ -48,6 +48,8 @@
       // We catch resize events
       $(window).on('resize', { self: this }, this.onWindowResize);
 
+      $( window ).on('unload', { self: this }, this.onUnload);
+
       // We catch scroll events in our containers
       $('.container').on('scroll', icinga.events.onContainerScroll);
 
@@ -71,6 +73,13 @@
       // $(document).on('change', 'form.auto select', this.submitForm);
     },
 
+    onUnload: function(event)
+    {
+        var icinga = event.data.self.icinga;
+        icinga.logger.info('Unloading Icinga');
+        icinga.destroy();
+    },
+
     historyChanged: function(event)
     {
       var icinga = event.data.self.icinga;
@@ -228,6 +237,7 @@
     {
       $(window).off('popstate', this.historyChanged);
       $(window).off('resize', this.onWindowResize);
+      $(window).off('unload', this.onUnload);
       $(document).off('scroll', '.container', this.onContainerScroll);
       $(document).off('click', 'a', this.linkClicked);
       $(document).off('click', 'tr[href]', this.linkClicked);