[Nagvis-checkins] SF.net Git: nagvis: FIX: Fixed showing URLs as hover menus ( hover_url option) ;
Brought to you by:
larsi-
From: lars <la...@us...> - 2014-01-24 09:31:51
|
Author: Lars Michelsen <lm...@la...> Date: Fri Jan 24 10:31:35 2014 +0100 Committer: Lars Michelsen <lm...@la...> Commit-Date: Fri Jan 24 10:31:35 2014 +0100 FIX: Fixed showing URLs as hover menus (hover_url option) ; Fixed hover urls processing non utf-8 encoded pages --- ChangeLog | 2 ++ share/frontend/nagvis-js/js/NagVisObject.js | 3 ++- share/server/core/classes/CoreModGeneral.php | 6 +++++- share/server/core/classes/NagVisHoverUrl.php | 5 +++++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index f4d4b31..546f14c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,10 +6,12 @@ Frontend: zoom_scale_objects is set to 0, the map objects and labels are not resized, but only repositioned according to the given zoom factor. * FIX: Fixed broken NagVis Multisite sidebar dashlet + * FIX: Fixed showing URLs as hover menus (hover_url option) Core: * FIX: Fixed rare occuring encoding problems of vars in several places * FIX: Fixed PHP error with map objects linking to not existing maps + * FIX: Trying to workaround broken processing of non UTF-8 pages in hover_urls 1.8b2 Frontend: diff --git a/share/frontend/nagvis-js/js/NagVisObject.js b/share/frontend/nagvis-js/js/NagVisObject.js index 032eee7..20c19ea 100644 --- a/share/frontend/nagvis-js/js/NagVisObject.js +++ b/share/frontend/nagvis-js/js/NagVisObject.js @@ -1096,7 +1096,8 @@ var NagVisObject = Base.extend({ needsHoverMenu: function() { return this.conf.hover_menu && this.conf.hover_menu !== '' && this.conf.hover_menu !== '0' - && this.conf.hover_template && this.conf.hover_template !== '' + && ((this.conf.hover_template && this.conf.hover_template !== '') || + (this.conf.hover_url && this.conf.hover_url !== '')); }, needsLink: function() { diff --git a/share/server/core/classes/CoreModGeneral.php b/share/server/core/classes/CoreModGeneral.php index 9549647..c8bdf78 100644 --- a/share/server/core/classes/CoreModGeneral.php +++ b/share/server/core/classes/CoreModGeneral.php @@ -89,7 +89,11 @@ class CoreModGeneral extends CoreModule { $arrReturn[] = Array('url' => $sUrl, 'code' => $OBJ->__toString()); } - return json_encode($arrReturn); + $result = json_encode($arrReturn); + if ($result === false) + throw new NagVisException(l('Data not parsable: [URL] ([MSG])', + array('URL' => htmlentities($sUrl, ENT_COMPAT, 'UTF-8'), 'MSG' => json_last_error_msg()))); + return $result; } } ?> diff --git a/share/server/core/classes/NagVisHoverUrl.php b/share/server/core/classes/NagVisHoverUrl.php index 15a810e..c85a8a2 100644 --- a/share/server/core/classes/NagVisHoverUrl.php +++ b/share/server/core/classes/NagVisHoverUrl.php @@ -93,6 +93,11 @@ class NagVisHoverUrl { throw new NagVisException(l('couldNotGetHoverUrl', Array('URL' => $this->url))); } + // Try to recode non utf-8 encoded responses to utf-8. Later used + // json_encode() needs utf-8 encoded code + $content = mb_convert_encoding($content, 'UTF-8', + mb_detect_encoding($content, 'UTF-8, ISO-8859-1', true)); + $this->code = $content; } |