You can subscribe to this list here.
2007 |
Jan
|
Feb
(65) |
Mar
(276) |
Apr
(544) |
May
(638) |
Jun
(225) |
Jul
(204) |
Aug
(294) |
Sep
(532) |
Oct
(506) |
Nov
(324) |
Dec
(359) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(208) |
Feb
(225) |
Mar
(248) |
Apr
(388) |
May
(222) |
Jun
(47) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <sv...@ze...> - 2008-05-30 14:51:34
|
Author: ian Date: 2008-05-30 10:51:41 -0400 (Fri, 30 May 2008) New Revision: 9364 Modified: trunk/Products/ZenModel/skins/zenmodel/zenoss.css Log: * Fixes #3254: Adjusted z-index of message box so that it works in IE Modified: trunk/Products/ZenModel/skins/zenmodel/zenoss.css =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/zenoss.css 2008-05-30 13:06:20 UTC (rev 9363) +++ trunk/Products/ZenModel/skins/zenmodel/zenoss.css 2008-05-30 14:51:41 UTC (rev 9364) @@ -12,9 +12,8 @@ } #frame { - /* position: relative; - */ + z-index: 1; } #topPane{ @@ -26,6 +25,8 @@ margin: 0px; border-bottom: 1px solid black; background: transparent url('img/metalbg.gif') top left; + position: relative; + z-index: 3; } #infoBar { @@ -37,6 +38,7 @@ padding-left: 10px; padding-top: 5px; position: relative; + z-index: 6000; } #messageSlot { @@ -253,6 +255,8 @@ padding: 5px; margin-left: 120px; margin-right: 10px; + position: relative; + z-index: 1; } #breadCrumbPane { |
From: <sv...@ze...> - 2008-05-30 13:06:15
|
Author: ian Date: 2008-05-30 09:06:20 -0400 (Fri, 30 May 2008) New Revision: 9363 Modified: trunk/Products/ZenModel/skins/zenmodel/commandOutputTemplate.pt trunk/Products/ZenModel/skins/zenmodel/deviceLoggingHeader.pt trunk/Products/ZenModel/skins/zenmodel/discoverLoggingHeader.pt trunk/Products/ZenModel/skins/zenmodel/templates.pt Log: * Set DOCTYPE on output screens so CSS will render properly in IE Modified: trunk/Products/ZenModel/skins/zenmodel/commandOutputTemplate.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/commandOutputTemplate.pt 2008-05-30 12:52:02 UTC (rev 9362) +++ trunk/Products/ZenModel/skins/zenmodel/commandOutputTemplate.pt 2008-05-30 13:06:20 UTC (rev 9363) @@ -1,3 +1,5 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" +"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"> <html> <head metal:use-macro="here/templates/macros/head1"/> <body> Modified: trunk/Products/ZenModel/skins/zenmodel/deviceLoggingHeader.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceLoggingHeader.pt 2008-05-30 12:52:02 UTC (rev 9362) +++ trunk/Products/ZenModel/skins/zenmodel/deviceLoggingHeader.pt 2008-05-30 13:06:20 UTC (rev 9363) @@ -1,3 +1,5 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" +"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"> <html> <head metal:use-macro="here/templates/macros/head1"/> <body> Modified: trunk/Products/ZenModel/skins/zenmodel/discoverLoggingHeader.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/discoverLoggingHeader.pt 2008-05-30 12:52:02 UTC (rev 9362) +++ trunk/Products/ZenModel/skins/zenmodel/discoverLoggingHeader.pt 2008-05-30 13:06:20 UTC (rev 9363) @@ -1,39 +1,31 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" +"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"> <html> - <head metal:use-macro="here/templates/macros/head1"/> + <head> + <tal:block metal:use-macro="here/templates/macros/head1"/> + <tal:block metal:use-macro="here/zenuimacros/macros/jsutils"/> + </head> <body> - <div id="frame"> - <div metal:use-macro="here/templates/macros/topPane"/> - <div id="infoBar"> - <div id="leftPaneToggle"></div> - <div id="breadCrumbPane"> - <span metal:use-macro="here/miscmacros/macros/breadCrumbs" /> - </div> - <tal:block metal:use-macro="here/templates/macros/infoBarExtra"/> - </div> - <div id="paneToggle"></div> - <style tal:condition="python:'Zenoss_Collapsed_Menu' in - here.REQUEST.HTTP_COOKIE"> - #leftPane { display:none;} - #rightPane { margin-left:12px;} - #paneToggle { - background-image: url('paneToggle_bg_collapsed.gif'); - border-right: medium none; - } - #leftPaneToggle{ display:block; - background:transparent url(img/leftpanetoggle_bg.gif) top - left repeat-x; - height: 30px; - width: 30px; - } - #breadCrumbPane{ padding-left: 35px;} + <tal:block metal:use-macro="here/dialogmacros/macros/proxyForm"/> + <tal:block metal:use-macro="here/dialogmacros/macros/dialog_with_buttons"/> + <div id="frame"> + <form name="proxy_form" id="proxy_form" + style="position:absolute;visibility:hidden" + tal:attributes="action here/absolute_url_path"></form> + <div metal:use-macro="here/templates/macros/topPane"/> + <div id="infoBar"> + <div id="leftPaneToggle"></div> + <div metal:use-macro="here/miscmacros/macros/breadCrumbs" /> + <tal:block metal:use-macro="here/templates/macros/infoBarExtra"/> + </div> + <tal:block metal:use-macro=" + here/maintemplate-extras/macros/panetoggle"/> + <div metal:use-macro="here/leftPane/macros/leftPane"/> + <div id="rightPane"/> + <div metal:use-macro="here/templates/macros/tabsPane"/> + <div id="contentPane"> - </style> - <div metal:use-macro="here/templates/macros/leftPane"/> - <div id="rightPane"/> - <div metal:use-macro="here/templates/macros/tabsPane"/> - <div id="contentPane"> - - <table class=" zentable"> + <table class="zentable"> <tr> <th class="tabletitle" colspan="1"> <div class="tabletitlecontainer"> Modified: trunk/Products/ZenModel/skins/zenmodel/templates.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/templates.pt 2008-05-30 12:52:02 UTC (rev 9362) +++ trunk/Products/ZenModel/skins/zenmodel/templates.pt 2008-05-30 13:06:20 UTC (rev 9363) @@ -8,8 +8,8 @@ breadCrumb and content ====================================================== --> <tal:block metal:define-macro="page1"> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" - "http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" +"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"> <html> <head> <title> |
From: <sv...@ze...> - 2008-05-30 12:51:53
|
Author: jstevens Date: 2008-05-30 08:52:02 -0400 (Fri, 30 May 2008) New Revision: 9362 Modified: trunk/Products/ZenUtils/zenpack.py Log: refs #3154 * catch calls to ZenPack.remove that don't accept the leaveObjects method Modified: trunk/Products/ZenUtils/zenpack.py =================================================================== --- trunk/Products/ZenUtils/zenpack.py 2008-05-29 19:44:42 UTC (rev 9361) +++ trunk/Products/ZenUtils/zenpack.py 2008-05-30 12:52:02 UTC (rev 9362) @@ -47,7 +47,16 @@ if log: log.debug('No ZenPack named %s in zeo' % packName) if zp: - zp.remove(dmd, leaveObjects=True) + try: + # In 2.2 we added an additional parameter to the remove method. + # Any ZenPack subclasses that haven't been updated to take the new + # parameter will throw a TypeError. + # The newer version of zenoss-supplied ZenPacks monkey patch + # older installed versions during an upgrade so that the remove + # accepts the leaveObjects method. + zp.remove(dmd, leaveObjects=True) + except TypeError: + zp.remove(dmd) dmd.ZenPackManager.packs._delObject(packName) root = zenPath('Products', packName) if deleteFiles: |
From: <sv...@ze...> - 2008-05-29 19:44:37
|
Author: jplouis Date: 2008-05-29 15:44:42 -0400 (Thu, 29 May 2008) New Revision: 9361 Modified: trunk/Products/ZenModel/PerformanceConf.py Log: default empty device class to / when creating a device. Fix method call to _executeZenModeler Modified: trunk/Products/ZenModel/PerformanceConf.py =================================================================== --- trunk/Products/ZenModel/PerformanceConf.py 2008-05-29 18:23:55 UTC (rev 9360) +++ trunk/Products/ZenModel/PerformanceConf.py 2008-05-29 19:44:42 UTC (rev 9361) @@ -400,7 +400,8 @@ elif self.getDmdRoot("Devices").findDevice(deviceName): raise DeviceExistsError("Device %s already exists" % deviceName) - + if devicePath == "": + devicePath = "/" device = None if discoverProto == "none": device = manage_createDevice(self, deviceName, devicePath, @@ -489,7 +490,7 @@ zenmodelerOpts = ['run', '--now','-F','-d', device.id] if REQUEST: zenmodelerOpts.append("--weblog") - result = _executeZenModelerCommand(zenmodelerOpts, REQUEST) + result = self._executeZenModelerCommand(zenmodelerOpts, REQUEST) if result and xmlrpc: return result log.info("configuration collected") |
From: <sv...@ze...> - 2008-05-29 18:23:53
|
Author: jstevens Date: 2008-05-29 14:23:55 -0400 (Thu, 29 May 2008) New Revision: 9360 Modified: trunk/Products/ZenModel/ZenPackLoader.py Log: fixes #3246 * correctly load zenpacks that don't have a skins dir Modified: trunk/Products/ZenModel/ZenPackLoader.py =================================================================== --- trunk/Products/ZenModel/ZenPackLoader.py 2008-05-29 15:43:42 UTC (rev 9359) +++ trunk/Products/ZenModel/ZenPackLoader.py 2008-05-29 18:23:55 UTC (rev 9360) @@ -278,7 +278,9 @@ def load(self, pack, app): from Products.ZenUtils.Skins import registerSkin - registerSkin(app.zport.dmd, pack.path('')) + skinsDir = pack.path('') + if os.path.isdir(skinsDir): + registerSkin(app.zport.dmd, skinsDir) def upgrade(self, pack, app): @@ -288,7 +290,9 @@ def unload(self, pack, app, leaveObjects=False): from Products.ZenUtils.Skins import unregisterSkin - unregisterSkin(app.zport.dmd, pack.path('')) + skinsDir = pack.path('') + if os.path.isdir(skinsDir): + unregisterSkin(app.zport.dmd, skinsDir) def list(self, pack, unused): |
From: <sv...@ze...> - 2008-05-29 15:43:34
|
Author: ecn Date: 2008-05-29 11:43:42 -0400 (Thu, 29 May 2008) New Revision: 9359 Modified: trunk/Products/ZenHub/zenhub.py Log: * allow alternative implementations of the rrd stats object Modified: trunk/Products/ZenHub/zenhub.py =================================================================== --- trunk/Products/ZenHub/zenhub.py 2008-05-29 14:36:19 UTC (rev 9358) +++ trunk/Products/ZenHub/zenhub.py 2008-05-29 15:43:42 UTC (rev 9359) @@ -198,11 +198,13 @@ summary="%s started" % self.name, severity=0) reactor.callLater(5, self.processQueue) - self.rrdStats = DaemonStats() - self.rrdStats.configWithMonitor('zenhub', self.getPerformanceConf()) + self.rrdStats = self.getRRDStats() - def getPerformanceConf(self): - return self.dmd.Monitors.Performance._getOb(self.options.monitor) + def getRRDStats(self): + rrdStats = DaemonStats() + perfConf = self.dmd.Monitors.Performance._getOb(self.options.monitor) + rrdStats.configWithMonitor('zenhub', perfConf) + return rrdStats def zeoConnect(self): """ |
From: <sv...@ze...> - 2008-05-29 14:36:10
|
Author: ian Date: 2008-05-29 10:36:19 -0400 (Thu, 29 May 2008) New Revision: 9358 Added: trunk/Products/ZenModel/skins/zenmodel/maintemplate-extras.pt Modified: trunk/Products/ZenModel/skins/zenmodel/templates.pt Log: * Fixes #3244: Moved the parts that might need to be modified into a separate template Added: trunk/Products/ZenModel/skins/zenmodel/maintemplate-extras.pt Modified: trunk/Products/ZenModel/skins/zenmodel/templates.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/templates.pt 2008-05-29 12:14:06 UTC (rev 9357) +++ trunk/Products/ZenModel/skins/zenmodel/templates.pt 2008-05-29 14:36:19 UTC (rev 9358) @@ -36,26 +36,8 @@ </div> <tal:block metal:use-macro="here/templates/macros/infoBarExtra"/> </div> - <div id="paneToggle"> - </div> - <style tal:condition="python:'Zenoss_Collapsed_Menu' in - here.REQUEST.HTTP_COOKIE"> - #leftPane { display:none;} - #rightPane { margin-left:12px;} - #paneToggle { - display:none; - background-image: url('img/paneToggle_bg_collapsed.gif'); - border-right: medium none; - } - #leftPaneToggle{ display:block; - background:transparent url('img/leftpanetoggle_bg.gif') top - left repeat-x; - height: 30px; - width: 30px; - } - #breadCrumbPane{ padding-left: 35px;} - - </style> + <tal:block metal:use-macro=" + here/maintemplate-extras/macros/panetoggle"/> <div metal:use-macro="here/leftPane/macros/leftPane"/> <div id="rightPane"> <tal:block metal:define-slot="rightPane"> @@ -156,41 +138,7 @@ head1 - standard header ====================================================== --> <tal:block metal:define-macro="head1"> - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> - <link rel="shortcut icon" - href="/zport/dmd/favicon.ico" - type="image/x-icon"/> - <link rel="stylesheet" type="text/css" - href="yui/grids/grids-min.css"/> - <link rel="stylesheet" type="text/css" title="zenoss" - href="/zport/portal_skins/zenoss.css" > - <!--[if IE 7]> - <link rel="stylesheet" type="text/css" title="zenoss" - href="zenoss_ie.css" > - <![endif]--> - <!--[if IE 6]> - <link rel="stylesheet" type="text/css" title="zenoss" - href="zenoss_ie6.css" > - <![endif]--> - <script type="text/javascript" src="js/MochiKit.js"></script> - <script type="text/javascript" language="javascript" - src="/zport/dmd/yui/yahoo/yahoo-min.js"></script> - <script type="text/javascript" language="javascript" - src="/zport/dmd/yui/yuiloader/yuiloader-beta-min.js"></script> - <script type="text/javascript" src="javascript/zenoss-core.js"></script> - <script> - var loader = YAHOO.zenoss.getLoader(); - loader.require(['zenossutils']); - loader.insert({onSuccess:function(){ - removeElementAutoCompletes(); - applyBrowserSpecificStyles(); - addSelectionBar(); - checkForCollapsed(); - connectCheckboxListeners(); - notifyParentOfNewUrl(); - zenPageInit(); - }}); - </script> + <tal:block metal:use-macro="here/maintemplate-extras/macros/head1"/> </tal:block> <!-- ====================================================== |
From: <sv...@ze...> - 2008-05-29 12:13:58
|
Author: ian Date: 2008-05-29 08:14:06 -0400 (Thu, 29 May 2008) New Revision: 9357 Modified: trunk/Products/ZenWidgets/skins/zenui/dialogmacros.pt trunk/Products/ZenWidgets/skins/zenui/javascript/zenoss-utils.js Log: * Fixes #3240: Rejiggered the dialog css and js Modified: trunk/Products/ZenWidgets/skins/zenui/dialogmacros.pt =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/dialogmacros.pt 2008-05-28 19:52:43 UTC (rev 9356) +++ trunk/Products/ZenWidgets/skins/zenui/dialogmacros.pt 2008-05-29 12:14:06 UTC (rev 9357) @@ -1,7 +1,7 @@ <!--============Basic dialog box wrapper===============--> <tal:block metal:define-macro="dialog"> <div id="dialog" class="dialog" style="visibility:hidden;position:absolute"> -<div id="dialog_innercontent" style="visibility:visible"> +<div id="dialog_innercontent"> <tal:block metal:define-slot="dialog_content"> This is a dialog box. </tal:block> Modified: trunk/Products/ZenWidgets/skins/zenui/javascript/zenoss-utils.js =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/javascript/zenoss-utils.js 2008-05-28 19:52:43 UTC (rev 9356) +++ trunk/Products/ZenWidgets/skins/zenui/javascript/zenoss-utils.js 2008-05-29 12:14:06 UTC (rev 9357) @@ -919,9 +919,10 @@ setStyle(this.box, { 'position':'absolute', 'z-index':'5001', - 'visibility':'visible', 'display':'none'}); + setStyle('dialog_innercontent', {'visibility':'visible'}); setStyle('dialog_content', {'visibility':'visible'}); + setStyle(this.box, {'visibility':'visible'}); }, addLoadEvent: function(id, func) { if (!(id in this.loadEvents)) this.loadEvents[id] = []; |
From: <sv...@ze...> - 2008-05-28 19:52:35
|
Author: ian Date: 2008-05-28 15:52:43 -0400 (Wed, 28 May 2008) New Revision: 9356 Added: trunk/Products/ZenModel/skins/zenmodel/zenoss-login-button.png trunk/Products/ZenModel/skins/zenmodel/zenoss-login-button.png.metadata trunk/Products/ZenModel/skins/zenmodel/zenoss-login.png trunk/Products/ZenModel/skins/zenmodel/zenoss-login.png.metadata Modified: trunk/Products/ZenModel/skins/zenmodel/login_form.pt Log: * Altered login screen Modified: trunk/Products/ZenModel/skins/zenmodel/login_form.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/login_form.pt 2008-05-28 18:59:02 UTC (rev 9355) +++ trunk/Products/ZenModel/skins/zenmodel/login_form.pt 2008-05-28 19:52:43 UTC (rev 9356) @@ -1,47 +1,116 @@ <html> -<head> -<title>Zenoss Login</title> -<link type="text/css" rel="stylesheet" href="login_form.css" /> -<!--[if IE 7]><style>#errorbox{left:-50px;margin-top:-5px;}</style><![endif]--> -</head> + <head> + <title>Zenoss Login</title> + <style> + .inputbox { + position: absolute; + border: medium none; + background: transparent none; + left: 367px; + width: 180px; + z-index: 2; + font-size: 110%; + color: #444; + text-align: center; + } + .submitbutton { + position: absolute; + z-index: 2; + background: transparent url('zenoss-login-button.png'); + top: 245px; + left: 466px; + width: 90px; + height: 32px; + border: medium none; + cursor: hand; cursor: pointer; + } + body { + margin: 0; + padding: 0; + background-color: #888; + } + #topbar { + height: 20%; + } + #middlebar { + text-align:center; + height:360px; + border-width: 2px 0; + border-style: solid; + border-color: #444; + background-color:#f4f4f4; + } + #container { + position: relative; + width:671px; + margin: 0 auto; + height:360px; + } + #loginimg { + position: absolute; + top: 0; + left: -50px; + z-index: 1; + } + #errorbox { + position: absolute; + z-index: 2; + width: 300px; + top: 250px; + left: 210px; + } + span.error { + font-family: sans-serif; + color: #8B0000; + } + #copyright { + color: #4e7aba; + font-size: 70%; + font-family: sans-serif; + text-align: center; + width: 300px; + position: absolute; + z-index: 2; + top: 300px; + left: 265px; + } + </style> + </head> -<body onload="document.loginform.__ac_name.focus();"> + <body onload="document.getElementById('username').focus();"> + <div id="topbar"></div> + <form name="loginform" + tal:attributes="action string:${here/absolute_url}/login"> + <input type="hidden" name="came_from" value="" + tal:attributes="value request/came_from | string:"/> + <input type="hidden" name="submitted" value="true" /> + <div id="middlebar"> + <div id="container"> + <img id="loginimg" src="zenoss-login.png"/> + <input id="username" type="text" name="__ac_name" + class="inputbox" style="top:160px"/> + <input type="password" name="__ac_password" + class="inputbox" style="top:202px;"/> + <div id="errorbox"> + <tal:block define="msg here/getLoginMessage" + tal:omit-tag="" + tal:on-error="string:"> + <span class="error" tal:condition="msg" + tal:content="structure msg" /> + </tal:block> + </div> + <input type="submit" name="submit" + class="submitbutton" value=""/> + <div id="copyright"> + <p>Copyright © 2005-2008 Zenoss, Inc. | Version + <span tal:content=" + here/dmd/About/getZenossVersionShort"/> + </p> + </div> + </div> + </div> + </form> + </body> -<div id="darkloginbox"> -<div id="loginimage"> -<div id="loginboxwrapper"> -<div id="loginboxtop"> </div> -<div id="loginboxmiddle"> -<img src="logo_login.gif" width="181" height="55" /><div id="form"> -<form method="post" name="loginform" tal:attributes="action string:${here/absolute_url}/login"> -<input type="hidden" name="came_from" value="" tal:attributes="value request/came_from | string:"/> -<input type="hidden" name="submitted" value="true" /> -<table cellspacing="0"> -<tr> -<td><label>Username:</label></td><td><input type="text" name="__ac_name" size="20" /></td> -</tr> -<tr> -<td><label>Password:</label></td><td><input type="password" name="__ac_password" size="20" /></td> -</tr> -<tr> -<td colspan="2" style="text-align: right;"><input type="submit" name="submit" value="submit" /> -<div id="errorbox"> - <tal:block define="msg here/getLoginMessage" - tal:omit-tag="" - tal:on-error="string:"> - <span class="error" tal:condition="msg" tal:content="structure msg" /> - </tal:block> -</div> -</td> -</tr> -</table> -</form> -</div></div> -<div id="loginboxbottom"> </div> -</div></div> -<p id="info">Copyright © 2007, 2008 Zenoss, Inc. | - Version <span tal:content="here/dmd/About/getZenossVersionShort" /></p> -<img src="dark_loginbox_bottom_blue.gif" width="622" height="34" /></div> -</body> </html> Added: trunk/Products/ZenModel/skins/zenmodel/zenoss-login-button.png Property changes on: trunk/Products/ZenModel/skins/zenmodel/zenoss-login-button.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/Products/ZenModel/skins/zenmodel/zenoss-login-button.png.metadata Added: trunk/Products/ZenModel/skins/zenmodel/zenoss-login.png Property changes on: trunk/Products/ZenModel/skins/zenmodel/zenoss-login.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/Products/ZenModel/skins/zenmodel/zenoss-login.png.metadata |
From: <sv...@ze...> - 2008-05-28 18:58:55
|
Author: ian Date: 2008-05-28 14:59:02 -0400 (Wed, 28 May 2008) New Revision: 9355 Added: trunk/Products/ZenWidgets/skins/zenui/logo.png Removed: trunk/Products/ZenWidgets/skins/zenui/img/transparent_logo.png Modified: trunk/Products/ZenModel/skins/zenmodel/templates.pt trunk/Products/ZenModel/skins/zenmodel/zenoss.css Log: * Refs #645: Added community logo Modified: trunk/Products/ZenModel/skins/zenmodel/templates.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/templates.pt 2008-05-28 16:05:06 UTC (rev 9354) +++ trunk/Products/ZenModel/skins/zenmodel/templates.pt 2008-05-28 18:59:02 UTC (rev 9355) @@ -198,10 +198,7 @@ ====================================================== --> <div id="topPane" metal:define-macro="topPane"> <a href="/zport/dmd/Dashboard"> - <div class="logo" - tal:define="zenversion zenversion | string:Core" - tal:content="string:| ${zenversion}"> - | Core + <div class="logo"> </div> </a> <div id="settings"> Modified: trunk/Products/ZenModel/skins/zenmodel/zenoss.css =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/zenoss.css 2008-05-28 16:05:06 UTC (rev 9354) +++ trunk/Products/ZenModel/skins/zenmodel/zenoss.css 2008-05-28 18:59:02 UTC (rev 9355) @@ -95,7 +95,8 @@ } div.logo { - background: transparent url('img/transparent_logo.png') top left no-repeat; + background: transparent url('logo.png') center left no-repeat; + width: 340px; padding-left: 242px; color: #a9b8d4; vertical-align: middle; Deleted: trunk/Products/ZenWidgets/skins/zenui/img/transparent_logo.png Added: trunk/Products/ZenWidgets/skins/zenui/logo.png Property changes on: trunk/Products/ZenWidgets/skins/zenui/logo.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream |
From: <sv...@ze...> - 2008-05-28 16:05:32
|
Author: jplouis Date: 2008-05-28 12:05:06 -0400 (Wed, 28 May 2008) New Revision: 9354 Modified: trunk/Products/ZenModel/PerformanceConf.py Log: refactor collect Device to delegate execution of zenmodeler cmd Modified: trunk/Products/ZenModel/PerformanceConf.py =================================================================== --- trunk/Products/ZenModel/PerformanceConf.py 2008-05-27 20:51:09 UTC (rev 9353) +++ trunk/Products/ZenModel/PerformanceConf.py 2008-05-28 16:05:06 UTC (rev 9354) @@ -487,10 +487,9 @@ if setlog and REQUEST and not xmlrpc: handler = setupLoggingHeader(device, REQUEST) - zm = zenPath('bin', 'zenmodeler') - zenmodelerCmd = [zm, 'run', '--now','-F','-d', device.id] - if REQUEST: zenmodelerCmd.append("--weblog") - result = executeCommand(zenmodelerCmd, REQUEST) + zenmodelerOpts = ['run', '--now','-F','-d', device.id] + if REQUEST: zenmodelerOpts.append("--weblog") + result = _executeZenModelerCommand(zenmodelerOpts, REQUEST) if result and xmlrpc: return result log.info("configuration collected") @@ -499,4 +498,14 @@ if xmlrpc: return 0 + def _executeZenModelerCommand(self, zenmodelerOpts, REQUEST=None): + """ + execute zenmodeler given zendmodeler options and return result + """ + zm = zenPath('bin', 'zenmodeler') + zenmodelerCmd = [zm] + zenmodelerCmd.extend(zenmodelerOpts) + result = executeCommand(zenmodelerCmd, REQUEST) + return result + InitializeClass(PerformanceConf) |
From: <sv...@ze...> - 2008-05-27 20:51:02
|
Author: ecn Date: 2008-05-27 16:51:09 -0400 (Tue, 27 May 2008) New Revision: 9353 Modified: branches/zenoss-2.1.x/Products/ZenModel/DeviceClass.py Log: fixes #3235: back-patch scalability fix from 2.2.x Modified: branches/zenoss-2.1.x/Products/ZenModel/DeviceClass.py =================================================================== --- branches/zenoss-2.1.x/Products/ZenModel/DeviceClass.py 2008-05-27 19:50:29 UTC (rev 9352) +++ branches/zenoss-2.1.x/Products/ZenModel/DeviceClass.py 2008-05-27 20:51:09 UTC (rev 9353) @@ -374,14 +374,11 @@ def jsonGetDeviceNames(self, query=''): ''' Return a list of all device names that match the filter. ''' - def cmpDevice(a, b): - return cmp(a.id, b.id) - if query: - devices = self.searchDevices(query) - else: - devices = self.getSubDevices() - devices.sort(cmpDevice) - return simplejson.dumps([d.id for d in devices]) + brains = self.deviceSearch.evalAdvancedQuery( + MatchGlob('id', query.rstrip('*') + '*')) + deviceIds = [b.id for b in brains] + deviceIds.sort(lambda x, y: cmp(x.lower(), y.lower())) + return simplejson.dumps(deviceIds) security.declareProtected('View', 'jsonGetComponentPaths') |
From: <sv...@ze...> - 2008-05-27 19:50:22
|
Author: ian Date: 2008-05-27 15:50:29 -0400 (Tue, 27 May 2008) New Revision: 9352 Modified: trunk/Products/ZenModel/DataRoot.py trunk/Products/ZenWidgets/skins/zenui/javascript/geomap-2.1.js trunk/Products/ZenWidgets/skins/zenui/javascript/geomap.js Log: * Fixes #3234: Only post the cache if dirty, and decode the cache utf-8 Modified: trunk/Products/ZenModel/DataRoot.py =================================================================== --- trunk/Products/ZenModel/DataRoot.py 2008-05-27 18:43:48 UTC (rev 9351) +++ trunk/Products/ZenModel/DataRoot.py 2008-05-27 19:50:29 UTC (rev 9352) @@ -501,6 +501,8 @@ the Google Maps geocode cache """ cache = extractPostContent(REQUEST) + try: cache = cache.decode('utf-8') + except: pass self.geocache = cache return True Modified: trunk/Products/ZenWidgets/skins/zenui/javascript/geomap-2.1.js =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/javascript/geomap-2.1.js 2008-05-27 18:43:48 UTC (rev 9351) +++ trunk/Products/ZenWidgets/skins/zenui/javascript/geomap-2.1.js 2008-05-27 19:50:29 UTC (rev 9352) @@ -145,9 +145,9 @@ 'simpleLocationGeoMap' ); var summarytext = node[3]; + if (address) { if (this.cache.get(address)==null) this.dirtycache = true; - if (address) { this.geocode( address, bind(function(p){ Modified: trunk/Products/ZenWidgets/skins/zenui/javascript/geomap.js =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/javascript/geomap.js 2008-05-27 18:43:48 UTC (rev 9351) +++ trunk/Products/ZenWidgets/skins/zenui/javascript/geomap.js 2008-05-27 19:50:29 UTC (rev 9352) @@ -141,9 +141,9 @@ var color = node[1]; var clicklink = node[2]; var summarytext = node[3]; + if (address) { if (this.cache.get(address)==null) this.dirtycache = true; - if (address) { this.geocode( address, bind(function(p){ |
From: <sv...@ze...> - 2008-05-27 18:43:44
|
Author: abray Date: 2008-05-27 14:43:48 -0400 (Tue, 27 May 2008) New Revision: 9351 Added: branches/zenoss-2.1.x/zendocs/ZenossDevGuide.doc branches/zenoss-2.1.x/zendocs/ZenossDevGuide21.pdf Log: Checking older verison of Dev guide to link from the web Added: branches/zenoss-2.1.x/zendocs/ZenossDevGuide.doc Property changes on: branches/zenoss-2.1.x/zendocs/ZenossDevGuide.doc ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: branches/zenoss-2.1.x/zendocs/ZenossDevGuide21.pdf Property changes on: branches/zenoss-2.1.x/zendocs/ZenossDevGuide21.pdf ___________________________________________________________________ Name: svn:mime-type + application/octet-stream |
From: <sv...@ze...> - 2008-05-27 16:50:33
|
Author: ecn Date: 2008-05-27 11:48:13 -0400 (Tue, 27 May 2008) New Revision: 9349 Modified: trunk/Products/ZenHub/zenhub.py Log: * factor out zenhub PerformanceConf lookup Modified: trunk/Products/ZenHub/zenhub.py =================================================================== --- trunk/Products/ZenHub/zenhub.py 2008-05-23 20:57:17 UTC (rev 9348) +++ trunk/Products/ZenHub/zenhub.py 2008-05-27 15:48:13 UTC (rev 9349) @@ -199,9 +199,10 @@ severity=0) reactor.callLater(5, self.processQueue) self.rrdStats = DaemonStats() - perf = self.dmd.Monitors.Performance._getOb(self.options.monitor) - self.rrdStats.configWithMonitor('zenhub', perf) + self.rrdStats.configWithMonitor('zenhub', self.getPerformanceConf()) + def getPerformanceConf(self): + return self.dmd.Monitors.Performance._getOb(self.options.monitor) def zeoConnect(self): """ |
From: <sv...@ze...> - 2008-05-27 16:06:49
|
Author: cgibbons Date: 2008-05-27 12:06:44 -0400 (Tue, 27 May 2008) New Revision: 9350 Modified: trunk/Products/ZenWin/WMIPlugin.py trunk/Products/ZenWin/zenwinmodeler.py Log: * refs #3233 : gives plugins a chance to handle any WMI exceptions that * occured during the processing of their queries Modified: trunk/Products/ZenWin/WMIPlugin.py =================================================================== --- trunk/Products/ZenWin/WMIPlugin.py 2008-05-27 15:48:13 UTC (rev 9349) +++ trunk/Products/ZenWin/WMIPlugin.py 2008-05-27 16:06:44 UTC (rev 9350) @@ -39,3 +39,11 @@ def queries(self): raise NotImplementedError + + def handleException(self, e, device, log): + """ + Called whenever an exception occurs issuing the WMI queries specified + by a plugin. Can be overriden to provide more robust error handling + for specific plugin types. + """ + return False Modified: trunk/Products/ZenWin/zenwinmodeler.py =================================================================== --- trunk/Products/ZenWin/zenwinmodeler.py 2008-05-27 15:48:13 UTC (rev 9349) +++ trunk/Products/ZenWin/zenwinmodeler.py 2008-05-27 16:06:44 UTC (rev 9350) @@ -145,14 +145,22 @@ pluginName = plugin.name() self.log.debug("Sending queries for plugin: %s", pluginName) self.log.debug("Queries: %s" % str(plugin.queries().values())) - result = self.client.boundedCall(mx, 'query', plugin.queries()) - self.client.results.append((plugin, result)) - - if getattr(plugin, 'getEvents', None): - self.log.info("Sending events returned by plugins") - for evt in plugin.getEvents(device, result, self.log): - self.sendEvent(evt) - + + try: + result = self.client.boundedCall(mx, 'query', plugin.queries()) + self.client.results.append((plugin, result)) + + if getattr(plugin, 'getEvents', None): + self.log.info("Sending events returned by plugins") + for evt in plugin.getEvents(device, result, self.log): + self.sendEvent(evt) + + except pywintypes.com_error, e: + msg = self.printComErrorMessage(e) + self.log.warning("WMI Comm Error for plugin '%s': %s", pluginName, msg) + if not plugin.handleException(e, device, self.log): + raise + finally: self.niceDoggie(self.cycleInterval()) self.client.stop() @@ -181,7 +189,7 @@ results = plugin.preprocess(results, self.log) datamaps = plugin.process(device, results, self.log) - + # allow multiple maps to be returned from a plugin if type(datamaps) not in \ (types.ListType, types.TupleType): |
From: <sv...@ze...> - 2008-05-23 20:57:14
|
Author: mray Date: 2008-05-23 16:57:17 -0400 (Fri, 23 May 2008) New Revision: 9348 Modified: trunk/inst/docs/INSTALL_FreeBSD63.txt Log: fixed version Modified: trunk/inst/docs/INSTALL_FreeBSD63.txt =================================================================== --- trunk/inst/docs/INSTALL_FreeBSD63.txt 2008-05-23 19:47:58 UTC (rev 9347) +++ trunk/inst/docs/INSTALL_FreeBSD63.txt 2008-05-23 20:57:17 UTC (rev 9348) @@ -1,4 +1,4 @@ -FreeBSD 6.2-RELEASE Installation Instructions +FreeBSD 6.3-RELEASE Installation Instructions Installation Technique: Manual Install |
From: <sv...@ze...> - 2008-05-23 19:47:51
|
Author: mray Date: 2008-05-23 15:47:58 -0400 (Fri, 23 May 2008) New Revision: 9347 Added: trunk/inst/docs/INSTALL_FreeBSD63.txt Log: fixes #3223. Added instructions provided by Bob Bomar Added: trunk/inst/docs/INSTALL_FreeBSD63.txt |
From: <sv...@ze...> - 2008-05-23 18:50:34
|
Author: jstevens Date: 2008-05-23 14:50:43 -0400 (Fri, 23 May 2008) New Revision: 9346 Removed: branches/zenoss-2.2.x/Products/ZenModel/migrate/fixZenPackRels.py Log: refs #3222 * r9345, which attempted to patch r9342 and r9344 from the trunk into the 2.2 branch, failed to actually remove fixZenPackRels.py. I am specifically removing it from the 2.2 branch. Deleted: branches/zenoss-2.2.x/Products/ZenModel/migrate/fixZenPackRels.py |
From: <sv...@ze...> - 2008-05-23 18:46:33
|
Author: jstevens Date: 2008-05-23 14:46:41 -0400 (Fri, 23 May 2008) New Revision: 9345 Added: branches/zenoss-2.2.x/Products/ZenModel/migrate/fixZenPackRels.py branches/zenoss-2.2.x/Products/ZenModel/migrate/happierZenPackRels.py Modified: branches/zenoss-2.2.x/Products/ZenModel/migrate/__init__.py Log: refs #3222 Patching r9342 and r9344 to 2.2.x branch Modified: branches/zenoss-2.2.x/Products/ZenModel/migrate/__init__.py =================================================================== --- branches/zenoss-2.2.x/Products/ZenModel/migrate/__init__.py 2008-05-23 18:43:14 UTC (rev 9344) +++ branches/zenoss-2.2.x/Products/ZenModel/migrate/__init__.py 2008-05-23 18:46:41 UTC (rev 9345) @@ -145,3 +145,4 @@ import runcommandspermission import winmodelerUnderModeler import removeWinModelerGraphPoints +import happierZenPackRels \ No newline at end of file Copied: branches/zenoss-2.2.x/Products/ZenModel/migrate/fixZenPackRels.py (from rev 9342, trunk/Products/ZenModel/migrate/fixZenPackRels.py) Copied: branches/zenoss-2.2.x/Products/ZenModel/migrate/happierZenPackRels.py (from rev 9344, trunk/Products/ZenModel/migrate/happierZenPackRels.py) |
From: <sv...@ze...> - 2008-05-23 18:43:06
|
Author: jstevens Date: 2008-05-23 14:43:14 -0400 (Fri, 23 May 2008) New Revision: 9344 Added: trunk/Products/ZenModel/migrate/happierZenPackRels.py Removed: trunk/Products/ZenModel/migrate/fixZenPackRels.py Modified: trunk/Products/ZenModel/migrate/__init__.py Log: refs #3222 Modified: trunk/Products/ZenModel/migrate/__init__.py =================================================================== --- trunk/Products/ZenModel/migrate/__init__.py 2008-05-23 18:21:37 UTC (rev 9343) +++ trunk/Products/ZenModel/migrate/__init__.py 2008-05-23 18:43:14 UTC (rev 9344) @@ -145,4 +145,4 @@ import runcommandspermission import winmodelerUnderModeler import removeWinModelerGraphPoints -import fixZenPackRels \ No newline at end of file +import happierZenPackRels \ No newline at end of file Deleted: trunk/Products/ZenModel/migrate/fixZenPackRels.py Copied: trunk/Products/ZenModel/migrate/happierZenPackRels.py (from rev 9342, trunk/Products/ZenModel/migrate/fixZenPackRels.py) |
From: <sv...@ze...> - 2008-05-23 18:21:28
|
Author: ian Date: 2008-05-23 14:21:37 -0400 (Fri, 23 May 2008) New Revision: 9343 Added: trunk/Products/ZenWidgets/skins/zenui/javascript/zenoss-utils.js Modified: trunk/Products/ZenEvents/skins/zenevents/viewEvents.pt trunk/Products/ZenEvents/skins/zenevents/viewHistoryEvents.pt trunk/Products/ZenModel/skins/zenmodel/Dashboard.pt trunk/Products/ZenModel/skins/zenmodel/administeredDevices.pt trunk/Products/ZenModel/skins/zenmodel/commandOutputTemplate.pt trunk/Products/ZenModel/skins/zenmodel/commandTestOutput.pt trunk/Products/ZenModel/skins/zenmodel/deviceListMacro.pt trunk/Products/ZenModel/skins/zenmodel/deviceLoggingHeader.pt trunk/Products/ZenModel/skins/zenmodel/deviceOsDetail.pt trunk/Products/ZenModel/skins/zenmodel/deviceStatus.pt trunk/Products/ZenModel/skins/zenmodel/discoverLoggingHeader.pt trunk/Products/ZenModel/skins/zenmodel/editSettings.pt trunk/Products/ZenModel/skins/zenmodel/templates.pt trunk/Products/ZenModel/skins/zenmodel/userCommandsMacros.pt trunk/Products/ZenModel/skins/zenmodel/viewGraphReport.pt trunk/Products/ZenModel/skins/zenmodel/viewPerformanceDetail.pt trunk/Products/ZenModel/skins/zenmodel/zenossDotNet.pt trunk/Products/ZenModel/skins/zenmodel/zenrrdzoom.js trunk/Products/ZenWidgets/skins/zenui/ZenAutoCompleter-example.pt trunk/Products/ZenWidgets/skins/zenui/dialogmacros.pt trunk/Products/ZenWidgets/skins/zenui/javascript/devicezengrid.js trunk/Products/ZenWidgets/skins/zenui/javascript/geomap-2.1.js trunk/Products/ZenWidgets/skins/zenui/javascript/geomap.js trunk/Products/ZenWidgets/skins/zenui/javascript/zenoss-core.js trunk/Products/ZenWidgets/skins/zenui/locationGeoMap.pt trunk/Products/ZenWidgets/skins/zenui/simpleLocationGeoMap.pt trunk/Products/ZenWidgets/skins/zenui/zenuimacros.pt Log: * Fixes #3217: Merging branch back into trunk. This changeset refactors the javascript loading mechanism so as to insure that dependencies are loaded in the correct order. Reviewed by ECN. Modified: trunk/Products/ZenEvents/skins/zenevents/viewEvents.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/viewEvents.pt 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenEvents/skins/zenevents/viewEvents.pt 2008-05-23 18:21:37 UTC (rev 9343) @@ -16,10 +16,6 @@ </div> <link type="text/css" rel="stylesheet" href="css/zengrid.css"/> -<script type="text/javascript" src="/zport/js/zenutils.js"></script> -<script type="text/javascript" src="/zport/javascript/zengrid.js"></script> -<script type="text/javascript" - src="/zport/portal_skins/zenevents/zeneventsfuncs.js"></script> <form name="control" method="post" tal:attributes="action here/absolute_url_path" tal:define=" @@ -88,12 +84,16 @@ <!-- BEGIN TABLE CONTENTS --> <tr><td> <div id="gridcontainer" style="width:100%;"> </div> -<script tal:content="string: +<script tal:define="ref python:test(here.dmd.ZenUsers.getUserSettings().eventConsoleRefresh, 'On', 'Off')" + tal:content="string: var eventZenGridBuffer, eventZenGrid; function updateEventConsoleMessage(msg) { $('msgbox').innerHTML = msg; } -addLoadEvent( function() { +addLoadEvent(function(){ +var loader = YAHOO.zenoss.getLoader(); +loader.require(['eventzengrid']); +loader.insert({onSuccess: function() { eventZenGridBuffer = new ZenGridBuffer(); eventZenGrid = new ZenGrid('gridcontainer', 'getJSONEventsInfo', 'mygrid', eventZenGridBuffer, @@ -102,21 +102,9 @@ connect('filter', 'onkeyup', eventZenGrid.doEventLivesearch); connect('state', 'onchange', eventZenGrid.refreshFromFormElement); connect('severity', 'onchange', eventZenGrid.refreshFromFormElement); - -});"> + eventZenGrid.turnRefresh${ref}(); +}})});"> </script> -<script tal:condition=" -python:here.dmd.ZenUsers.getUserSettings().eventConsoleRefresh"> -addLoadEvent( function() { - eventZenGrid.turnRefreshOn(); -}); -</script> -<script tal:condition=" -python:not here.dmd.ZenUsers.getUserSettings().eventConsoleRefresh"> -addLoadEvent( function() { - eventZenGrid.turnRefreshOff(); -}); -</script> </td></tr> <!-- END TABLE CONTENTS --> </tal:block> Modified: trunk/Products/ZenEvents/skins/zenevents/viewHistoryEvents.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/viewHistoryEvents.pt 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenEvents/skins/zenevents/viewHistoryEvents.pt 2008-05-23 18:21:37 UTC (rev 9343) @@ -4,10 +4,6 @@ <span metal:define-macro="body"> <link type="text/css" rel="stylesheet" href="css/zengrid.css"/> <script type="text/javascript"> var djConfig = { isDebug: true }; </script> -<script type="text/javascript" src="/zport/js/zenutils.js"></script> -<script type="text/javascript" src="/zport/javascript/zengrid.js"></script> -<script type="text/javascript" - src="/zport/portal_skins/zenevents/zeneventsfuncs.js"></script> <script type="text/javascript" src="/zport/portal_skins/zenmodel/datePicker.js"> </script> @@ -114,6 +110,9 @@ <script tal:content="string: var eventZenGridBuffer, eventZenGrid; addLoadEvent( function() { +var loader = YAHOO.zenoss.getLoader(); +loader.require(['eventzengrid']); +loader.insert({onSuccess:function(){ eventZenGridBuffer = new ZenGridBuffer(); eventZenGrid = new ZenGrid('gridcontainer', 'getJSONHistoryEventsInfo', 'mygrid', eventZenGridBuffer, @@ -121,7 +120,7 @@ connect('filter', 'onkeyup', eventZenGrid.doEventLivesearch); connect('state', 'onchange', eventZenGrid.refreshFromFormElement); connect('severity', 'onchange', eventZenGrid.refreshFromFormElement); -});"> +}})});"> </script> <script type="text/javascript"> Modified: trunk/Products/ZenModel/skins/zenmodel/Dashboard.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/Dashboard.pt 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenModel/skins/zenmodel/Dashboard.pt 2008-05-23 18:21:37 UTC (rev 9343) @@ -44,8 +44,9 @@ ContainerObject.rightCol().addPortlet(p3); } } -YAHOO.zenoss.loader.require(['portletsource']); -YAHOO.zenoss.loader.insert({ 'onSuccess':initDashboardPortlets }); +var loader = YAHOO.zenoss.getLoader(); +loader.require(['portletsource']); +loader.insert({ 'onSuccess':initDashboardPortlets }); </script> </tal:block> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/administeredDevices.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/administeredDevices.pt 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenModel/skins/zenmodel/administeredDevices.pt 2008-05-23 18:21:37 UTC (rev 9343) @@ -17,10 +17,12 @@ q.input.name = 'deviceName' } -YAHOO.zenoss.loader.require(['zenautocomplete']); -YAHOO.zenoss.loader.insert(); +var loader = YAHOO.zenoss.getLoader(); +loader.require(['zenautocomplete']); +loader.insert(function(){ + $('dialog').addLoadEvent('dialog_addAdministeredDevice', function() { createAnAutocompleter('deviceLiveSearch') ;} ) +}); // don't pass it a callback, calling it later manually -$('dialog').addLoadEvent('dialog_addAdministeredDevice', function() { createAnAutocompleter('deviceLiveSearch') ;} ) </script> Modified: trunk/Products/ZenModel/skins/zenmodel/commandOutputTemplate.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/commandOutputTemplate.pt 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenModel/skins/zenmodel/commandOutputTemplate.pt 2008-05-23 18:21:37 UTC (rev 9343) @@ -36,7 +36,6 @@ <div metal:use-macro="here/templates/macros/leftPane"/> <div id="rightPane"/> <div metal:use-macro="here/templates/macros/tabsPane"/> - <script type="text/javascript">zenPageInit()</script> <div id="contentPane"> Modified: trunk/Products/ZenModel/skins/zenmodel/commandTestOutput.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/commandTestOutput.pt 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenModel/skins/zenmodel/commandTestOutput.pt 2008-05-23 18:21:37 UTC (rev 9343) @@ -36,7 +36,6 @@ <div metal:use-macro="here/templates/macros/leftPane"/> <div id="rightPane"/> <div metal:use-macro="here/templates/macros/tabsPane"/> - <script type="text/javascript">zenPageInit()</script> <div id="contentPane"> Modified: trunk/Products/ZenModel/skins/zenmodel/deviceListMacro.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceListMacro.pt 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenModel/skins/zenmodel/deviceListMacro.pt 2008-05-23 18:21:37 UTC (rev 9343) @@ -247,23 +247,23 @@ <tal:block metal:define-macro="devGridBody"> <tr><td> <link type="text/css" rel="stylesheet" href="css/zengrid.css"/> - <script type="text/javascript" - src="/zport/javascript/devicezengrid.js"></script> - <div id="gridcontainer" style="width:100%;"> </div> <tal:block tal:define="ismanager python:test( here.zport.has_permission('View', here.dmd), 'true', 'false')"> <script tal:content="string: var devZenGridBuffer, devZenGrid; - addLoadEvent( function() { + loader = YAHOO.zenoss.getLoader(); + loader.require(['devicezengrid']); + loader.insert({onSuccess: function() { isManager = ${ismanager}; devZenGridBuffer = new DeviceZenGridBuffer(); devZenGrid = new DeviceZenGrid('gridcontainer', 'getJSONDeviceInfo', 'mygrid', devZenGridBuffer, '${here/absolute_url_path}'); connect('filter', 'onkeypress', devZenGrid.doEventLivesearch); - });"></script> + }}); +"></script> </tal:block> </td></tr> </tal:block>:w Modified: trunk/Products/ZenModel/skins/zenmodel/deviceLoggingHeader.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceLoggingHeader.pt 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenModel/skins/zenmodel/deviceLoggingHeader.pt 2008-05-23 18:21:37 UTC (rev 9343) @@ -31,7 +31,6 @@ <div metal:use-macro="here/leftPane/macros/leftPane"/> <div id="rightPane"/> <div metal:use-macro="here/templates/macros/tabsPane"/> - <script type="text/javascript">zenPageInit()</script> <div id="contentPane"> <table class=" zentable"> Modified: trunk/Products/ZenModel/skins/zenmodel/deviceOsDetail.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceOsDetail.pt 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenModel/skins/zenmodel/deviceOsDetail.pt 2008-05-23 18:21:37 UTC (rev 9343) @@ -31,11 +31,13 @@ q.input.name = 'className' } -YAHOO.zenoss.loader.require(['zenautocomplete']); -YAHOO.zenoss.loader.insert(); +var loader = YAHOO.zenoss.getLoader(); +loader.require(['zenautocomplete']); +loader.insert( function(){ + $('dialog').addLoadEvent('dialog_addIpService', function() { createIpServiceClassAutocompleter('ipServiceClassLiveSearch') ;} ) + $('dialog').addLoadEvent('dialog_addWinService', function() { createWinServiceClassAutocompleter('winServiceClassLiveSearch') ;} ) +}); // don't pass it a callback, calling it later manually -$('dialog').addLoadEvent('dialog_addIpService', function() { createIpServiceClassAutocompleter('ipServiceClassLiveSearch') ;} ) -$('dialog').addLoadEvent('dialog_addWinService', function() { createWinServiceClassAutocompleter('winServiceClassLiveSearch') ;} ) </script> <tal:block Modified: trunk/Products/ZenModel/skins/zenmodel/deviceStatus.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceStatus.pt 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenModel/skins/zenmodel/deviceStatus.pt 2008-05-23 18:21:37 UTC (rev 9343) @@ -92,8 +92,9 @@ 'component-event-table', mycolumndefs, dataSource, oConfigs); } addLoadEvent(function() { - YAHOO.zenoss.loader.require(["datatable", "datatablesamskin"]); - YAHOO.zenoss.loader.insert({onSuccess:makeComponentDataTable}); + var loader = YAHOO.zenoss.getLoader(); + loader.require(["datatable", "datatablesamskin"]); + loader.insert({onSuccess:makeComponentDataTable}); }); </script> </div> Modified: trunk/Products/ZenModel/skins/zenmodel/discoverLoggingHeader.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/discoverLoggingHeader.pt 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenModel/skins/zenmodel/discoverLoggingHeader.pt 2008-05-23 18:21:37 UTC (rev 9343) @@ -31,7 +31,6 @@ <div metal:use-macro="here/templates/macros/leftPane"/> <div id="rightPane"/> <div metal:use-macro="here/templates/macros/tabsPane"/> - <script type="text/javascript">zenPageInit()</script> <div id="contentPane"> <table class=" zentable"> Modified: trunk/Products/ZenModel/skins/zenmodel/editSettings.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editSettings.pt 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenModel/skins/zenmodel/editSettings.pt 2008-05-23 18:21:37 UTC (rev 9343) @@ -27,8 +27,9 @@ mySimpleDialog.render(currentDocument().body); mySimpleDialog.show(); } -YAHOO.zenoss.loader.require(['container']); -YAHOO.zenoss.loader.insert(); +var loader=YAHOO.zenoss.getLoader(); +loader.require(['container']); +loader.insert(); </script> <form method=post tal:attributes="action string:${here/absolute_url_path}"> Modified: trunk/Products/ZenModel/skins/zenmodel/templates.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/templates.pt 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenModel/skins/zenmodel/templates.pt 2008-05-23 18:21:37 UTC (rev 9343) @@ -173,12 +173,24 @@ href="zenoss_ie6.css" > <![endif]--> <script type="text/javascript" src="js/MochiKit.js"></script> - <script> var YAHOO_config={load:{base: '/zport/dmd/yui/'}};</script> <script type="text/javascript" language="javascript" src="/zport/dmd/yui/yahoo/yahoo-min.js"></script> <script type="text/javascript" language="javascript" src="/zport/dmd/yui/yuiloader/yuiloader-beta-min.js"></script> <script type="text/javascript" src="javascript/zenoss-core.js"></script> + <script> + var loader = YAHOO.zenoss.getLoader(); + loader.require(['zenossutils']); + loader.insert({onSuccess:function(){ + removeElementAutoCompletes(); + applyBrowserSpecificStyles(); + addSelectionBar(); + checkForCollapsed(); + connectCheckboxListeners(); + notifyParentOfNewUrl(); + zenPageInit(); + }}); + </script> </tal:block> <!-- ====================================================== Modified: trunk/Products/ZenModel/skins/zenmodel/userCommandsMacros.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/userCommandsMacros.pt 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenModel/skins/zenmodel/userCommandsMacros.pt 2008-05-23 18:21:37 UTC (rev 9343) @@ -119,7 +119,12 @@ </li> </ul> </div> -<script>registerSubmenu('RunCommands_parent','RunCommands_submenu'); +<script> +var loader = YAHOO.zenoss.getLoader(); +loader.require(['zenossutils']); +loader.insert({onSuccess:function(){ + registerSubmenu('RunCommands_parent','RunCommands_submenu'); +}}); </script> </li> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/viewGraphReport.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/viewGraphReport.pt 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenModel/skins/zenmodel/viewGraphReport.pt 2008-05-23 18:21:37 UTC (rev 9343) @@ -38,6 +38,11 @@ } printableForm.submit(); } +addLoadEvent(function() { + var loader = YAHOO.zenoss.getLoader(); + loader.require(['swoopygraphs']); + loader.insert({onSuccess:function(){zenRRDInit()}}); +}); </script> @@ -106,10 +111,6 @@ </tal:block> -<script> - document.write('<\/script><script src="zenrrdzoom.js"><\/script><script>'); -</script> - <!-- END TABLE CONTENTS --> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/viewPerformanceDetail.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/viewPerformanceDetail.pt 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenModel/skins/zenmodel/viewPerformanceDetail.pt 2008-05-23 18:21:37 UTC (rev 9343) @@ -43,27 +43,34 @@ id="refreshRate" size='2' value='60'/> <script> var button = $('refreshButton'); - var refreshMgr; - function turnRefreshOff() { - try { - refreshMgr.cancelRefresh(); - } catch(e) { noop(); } - setStyle(button, - {'background-image':'url(img/refresh_on.png)'}); - button.onclick = turnRefreshOn; - button.blur(); - } - function turnRefreshOn () { - var rate = $('refreshRate').value; - var refreshMgr = new RefreshManager(rate, - function(){resetGraphs($('drange_select').value)} - ); - setStyle(button, - {'background-image':'url(img/refresh_off.png)'}); - button.onclick = turnRefreshOff; - button.blur(); - } - turnRefreshOn(); + var refreshMgr, turnRefreshOff, turnRefreshOn; + addLoadEvent(function() { + var loader = YAHOO.zenoss.getLoader(); + loader.require(['swoopygraphs']); + loader.insert({onSuccess:function(){ + zenRRDInit(); + turnRefreshOff = function() { + try { + refreshMgr.cancelRefresh(); + } catch(e) { noop(); } + setStyle(button, + {'background-image':'url(img/refresh_on.png)'}); + button.onclick = turnRefreshOn; + button.blur(); + } + turnRefreshOn = function() { + var rate = $('refreshRate').value; + var refreshMgr = new RefreshManager(rate, + function(){resetGraphs($('drange_select').value)} + ); + setStyle(button, + {'background-image':'url(img/refresh_off.png)'}); + button.onclick = turnRefreshOff; + button.blur(); + } + turnRefreshOn(); + }}); + }); </script> <tal:block metal:define-slot="filterslot"> </tal:block> @@ -105,9 +112,6 @@ </tal:block> </tal:block> -<script> - document.write('<\/script><script src="zenrrdzoom.js"><\/script><script>'); -</script> <!-- END TABLE CONTENTS --> Modified: trunk/Products/ZenModel/skins/zenmodel/zenossDotNet.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/zenossDotNet.pt 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenModel/skins/zenmodel/zenossDotNet.pt 2008-05-23 18:21:37 UTC (rev 9343) @@ -1,8 +1,9 @@ <tal:block metal:use-macro="here/templates/macros/page1"> <tal:block metal:fill-slot="contentPane"> <script> - YAHOO.zenoss.loader.require(['container']); - YAHOO.zenoss.loader.insert(); + var loader=YAHOO.zenoss.getLoader(); + loader.require(['container']); + loader.insert(); function installZenPack(packName) { url = '/zport/dmd/ZenPackManager/fetchZenPack'; qs = {packName:packName}; Modified: trunk/Products/ZenModel/skins/zenmodel/zenrrdzoom.js =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/zenrrdzoom.js 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenModel/skins/zenmodel/zenrrdzoom.js 2008-05-23 18:21:37 UTC (rev 9343) @@ -7,9 +7,6 @@ ##################################################### */ - - - var zoom_factor = 1.5; var pan_factor = 3; // Fraction of graph to move var drange_re = /&drange=([0-9]*)/; @@ -492,4 +489,5 @@ } } -addLoadEvent(zenRRDInit); +YAHOO.register('swoopygraphs', YAHOO.zenoss, {}); + Modified: trunk/Products/ZenWidgets/skins/zenui/ZenAutoCompleter-example.pt =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/ZenAutoCompleter-example.pt 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenWidgets/skins/zenui/ZenAutoCompleter-example.pt 2008-05-23 18:21:37 UTC (rev 9343) @@ -15,8 +15,9 @@ ); } -YAHOO.zenoss.loader.require(['zenautocomplete']); -YAHOO.zenoss.loader.insert({onSuccess:createAnAutocompleter}); // pass it a callback +var loader = YAHOO.zenoss.getLoader(); +loader.require(['zenautocomplete']); +loader.insert({onSuccess:createAnAutocompleter}); // pass it a callback </script> Modified: trunk/Products/ZenWidgets/skins/zenui/dialogmacros.pt =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/dialogmacros.pt 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenWidgets/skins/zenui/dialogmacros.pt 2008-05-23 18:21:37 UTC (rev 9343) @@ -1,7 +1,7 @@ <!--============Basic dialog box wrapper===============--> <tal:block metal:define-macro="dialog"> -<div id="dialog" class="dialog"> -<div id="dialog_innercontent"> +<div id="dialog" class="dialog" style="visibility:hidden;position:absolute"> +<div id="dialog_innercontent" style="visibility:visible"> <tal:block metal:define-slot="dialog_content"> This is a dialog box. </tal:block> @@ -9,8 +9,15 @@ <img id="dialog_close" src="img/close.gif" class="dialog_close"/> </div> <script> -var mydialog = new Dialog.Box($('dialog')); -connect('dialog_close','onclick', mydialog.box.hide); +loader = YAHOO.zenoss.getLoader(); +loader.require(['zenossutils']); +loader.insert({ + onSuccess: function(){ + mydialog = new Dialog.Box($('dialog')); + connect('dialog_close','onclick', mydialog.box.hide); + $('dialog').style.visibility = ''; + } +}); </script> </tal:block> Modified: trunk/Products/ZenWidgets/skins/zenui/javascript/devicezengrid.js =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/javascript/devicezengrid.js 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenWidgets/skins/zenui/javascript/devicezengrid.js 2008-05-23 18:21:37 UTC (rev 9343) @@ -1,5 +1,7 @@ var Class = YAHOO.zenoss.Class; +YAHOO.namespace('YAHOO.zenoss.zengrid'); + var isManager = true; var ZenGridLoadingMsg = Class.create(); @@ -33,7 +35,7 @@ return new Coordinates((dims.w/2)+pos.x, (dims.h/2)+pos.y); }, show: function(msg) { - if (msg) setInnerHTML($('zengridload_content'),msg); + if (msg) YAHOO.zenoss.setInnerHTML($('zengridload_content'),msg); var p = this.getViewportCenter(); var d = getElementDimensions(this.framework); var pos = new Coordinates(p.x-(d.w/2),p.y-(d.h/2)); @@ -393,11 +395,11 @@ populateRow: function(row, data) { var stuffz = row.getElementsByTagName('div') for (i=0;i<stuffz.length;i++) { - setInnerHTML(stuffz[i], data[i]); + YAHOO.zenoss.setInnerHTML(stuffz[i], data[i]); } if (isManager) { var cb = '<input type="checkbox" style="visibility:hidden"/>'; - setInnerHTML(stuffz[0], cb); + YAHOO.zenoss.setInnerHTML(stuffz[0], cb); setStyle(stuffz[0], {'width':'20px'}); } }, @@ -509,7 +511,7 @@ table = this.zgtable; var cells = getElementsByTagAndClassName('div', 'cell_inner', table); for (i=0;(cell=cells[i]);i++){ - setInnerHTML(cell, ''); + YAHOO.zenoss.setInnerHTML(cell, ''); } }, setTableNumRows: function(numrows) { @@ -565,13 +567,13 @@ var firstcol = yo[0]; if (isManager) { mydata = concat([''],mydata); - setInnerHTML(divs[0], chkbox); + YAHOO.zenoss.setInnerHTML(divs[0], chkbox); setStyle(divs[0], {'width':'21px'}); connect($(evid), 'onclick', this.markAsChecked); } for (j=isManager?1:0;j<yo.length;j++) { var cellwidth = this.abswidths[j] - setInnerHTML(divs[j], unescape(mydata[j])); + YAHOO.zenoss.setInnerHTML(divs[j], unescape(mydata[j])); yo[j].title = scrapeText(divs[j]); } @@ -748,7 +750,7 @@ 500); }, updateStatusBar: function(rownum) { - setInnerHTML($('currentRows'), rownum+1 + '-' + + YAHOO.zenoss.setInnerHTML($('currentRows'), rownum+1 + '-' + parseInt(parseInt(rownum)+ Math.min(parseInt(this.numRows), parseInt(this.buffer.totalRows)) ) + ' of ' + this.buffer.totalRows); @@ -837,3 +839,4 @@ } } +YAHOO.register("devicezengrid", YAHOO.zenoss.zengrid, {}); Modified: trunk/Products/ZenWidgets/skins/zenui/javascript/geomap-2.1.js =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/javascript/geomap-2.1.js 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenWidgets/skins/zenui/javascript/geomap-2.1.js 2008-05-23 18:21:37 UTC (rev 9343) @@ -292,8 +292,5 @@ } -addLoadEvent(function() { - YAHOO.zenoss.loader.require("container"); - YAHOO.zenoss.loader.insert({onSuccess:geomap_initialize}) -}); +YAHOO.register('simplegeomap', YAHOO.zenoss, {}); Modified: trunk/Products/ZenWidgets/skins/zenui/javascript/geomap.js =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/javascript/geomap.js 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenWidgets/skins/zenui/javascript/geomap.js 2008-05-23 18:21:37 UTC (rev 9343) @@ -262,8 +262,4 @@ } -addLoadEvent(function() { - YAHOO.zenoss.loader.require("container"); - YAHOO.zenoss.loader.insert({onSuccess:geomap_initialize}) -}); - +YAHOO.register('geomap', YAHOO.zenoss, {}); Modified: trunk/Products/ZenWidgets/skins/zenui/javascript/zenoss-core.js =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/javascript/zenoss-core.js 2008-05-23 17:59:12 UTC (rev 9342) +++ trunk/Products/ZenWidgets/skins/zenui/javascript/zenoss-core.js 2008-05-23 18:21:37 UTC (rev 9343) @@ -1,1169 +1,97 @@ -// Set up the Javascript loader -loader = new YAHOO.util.YUILoader(); -loader.base = '/zport/dmd/yui/'; - -// Register zenoss scripts -loader.addModule({ - name: "datatablesamskin", - type: "css", - fullpath: "/zport/dmd/yui/datatable/assets/skins/sam/datatable.css" -}); -loader.addModule({ - name: "autocompleteskin", - type: "css", - fullpath: "/zport/dmd/yui/autocomplete/assets/skins/sam/autocomplete.css" -}); -loader.addModule({ - name: "zenautocomplete", - type: "js", - fullpath: "/zport/dmd/javascript/zenautocomplete.js", - requires: ["autocomplete", "animation", "autocompleteskin"] -}); -loader.addModule({ - name: "portlet", - type: "js", - fullpath: "/zport/dmd/javascript/portlet.js", - requires: ["dragdrop", "event", "dom", "animation", - "datasource", "datatable", "datatablesamskin", - "container", "button","zenautocomplete"] -}); -loader.addModule({ - name: "portletsource", - type: "js", - fullpath: "/zport/ZenPortletManager/get_source", - requires: ["portlet"] -}); - -//Declare the Zenoss namespace -YAHOO.namespace("zenoss"); - -// Put the loader somewhere accessible -YAHOO.namespace("zenoss.loader"); -YAHOO.zenoss.loader = loader; - - -// Define a helpful "class" function (thanks, Prototype) - -var Class={ - create:function(){ - return function(){ - bindMethods(this); - this.__init__.apply(this,arguments); - } - } +// Graceful degradation of Firebug console object +// via http://ajaxian.com/archives/graceful-degradation-of-firebug-console-object +if (! ("console" in window) || !("firebug" in console)) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group" + , "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i <names.length; ++i) window.console[names[i]] = function() {}; } -YAHOO.zenoss.Class = Class; - - -function bindMethodsTo(src, scope) { - for (var property in src) { - if (typeof src[property]=='function') { - src[property] = method(scope, src[property]); +// Set up the Javascript loader +function getLoader() { + loader = new YAHOO.util.YUILoader({ + onProgress: function(o) { + console.info(o.name + " module loaded."); + }, + onFailure: function(msg, xhrreq) { + console.warn('FAILURE: ' + msg) } - } -} - -// Subclassing! (thanks, me) - -var Subclass={ - create: function(klass){ - return function() { - this.superclass = {}; - for (var property in klass.prototype) { - if (!(property in this)) - this[property] = klass.prototype[property]; - this.superclass[property] = klass.prototype[property]; - } - bindMethods(this); - bindMethodsTo(this.superclass, this); - this.__init__.apply(this, arguments); - } - } -} -YAHOO.zenoss.Subclass = Subclass; - - -function purge(d) { - var a = d.attributes, i, l, n; - if (a) { - l = a.length; - for (i = 0; i < l; i += 1) { - n = a[i].name; - if (typeof d[n] === 'function') { - d[n] = null; - } - } - } - a = d.childNodes; - if (a) { - l = a.length; - for (i = 0; i < l; i += 1) { - purge(d.childNodes[i]); - } - } -} -YAHOO.zenoss.purge = purge; - -// Code from Julien Lecomte of Yahoo! -YAHOO.zenoss.loader.require(['dom', 'event']); -YAHOO.zenoss.loader.insert(); -function setInnerHTML (el, html) { - el = YAHOO.util.Dom.get(el); - if (!el || typeof html !== 'string') { - return null; - } - // Break circular references. - (function (o) { - var a = o.attributes, i, l, n, c; - if (a) { - l = a.length; - for (i = 0; i <l; i += 1) { - n = a[i].name; - if (typeof o[n] === 'function') { - o[n] = null; - } - } - } - a = o.childNodes; - if (a) { - l = a.length; - for (i = 0; i <l; i += 1) { - c = o.childNodes[i]; - // Purge child nodes. - arguments.callee(c); - // Removes all listeners attached to the element via YUI's addListener. - YAHOO.util.Event.purgeElement(c); - } - } - })(el); - // Remove scripts from HTML string, and set innerHTML property - el.innerHTML = html.replace(/<script[^>]*>((.|[\r\n])*?)<\\?\/script>/ig, ""); - // Return a reference to the first child - return el.firstChild; -}; -YAHOO.zenoss.setInnerHTML = setInnerHTML; - -function unescapeHTML(str) { - if (!YAHOO.zenoss._dummydiv) YAHOO.zenoss._dummydiv=DIV(null, null); - _dummydiv = YAHOO.zenoss._dummydiv; - _dummydiv.innerHTML = str; - return _dummydiv.textContent; -} -YAHOO.zenoss.unescapeHTML = unescapeHTML; - -function getSelectValues(element) { - var element = $(element); - var values = []; - forEach(element.options, function(opt){ - if(opt.selected) values.push(opt.value); }); - return values; -} -YAHOO.zenoss.getSelectValues = getSelectValues; + loader.base = '/zport/dmd/yui/'; -/************************************ - * Less universally useful stuff - * (formerly separate scripts) - ***********************************/ - -function toggleElement(elementid) { - var element = $(elementid); - if (element.visible == 0) { - element.style.display = "none"; - element.visible = 1; - } else { - element.style.display = ""; - element.visible = 0; - } -} - - -/* Panel Effects */ - -function toggleVisible(elem) { - toggleElementClass("invisible", elem); -} - -function makeVisible(elem) { - removeElementClass(elem, "invisible"); -} - -function makeInvisible(elem) { - addElementClass(elem, "invisible"); -} - -function isVisible(elem) { - return !hasElementClass(elem, "invisible"); -} - -function getCookie(name) { - var s = document.cookie.indexOf(name + "="); - if ((!s) && name!=document.cookie.substring(0,name.length)) { - return null; - } - if (s < 0) { - return null; - } - var e = document.cookie.indexOf(';', s+name.length+1); - if (e<0) e = document.cookie.length; - if (e==s) { - return ''; - } - return unescape(document.cookie.substring(s+name.length+1, e)); -} - -function setCookie( name, value, expires, path, domain, secure ) { - var today = new Date(); - today.setTime( today.getTime() ); - if ( expires ) { - expires = expires * 1000 * 60 * 60 * 24; - } - var expires_date = new Date( today.getTime() + (expires) ); - document.cookie = name + "=" +escape( value ) + - ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + - ( ( path ) ? ";path=" + path : "" ) + - ( ( domain ) ? ";domain=" + domain : "" ) + - ( ( secure ) ? ";secure" : "" ); -} - -function deleteCookie(name,path,domain) { - if (getCookie(name)) { - document.cookie = - name + '=' + - ( (path) ? ';path=' + path : '') + - ( (domain) ? ';domain=' + domain : '') + - ';expires=Thu, 01-Jan-1970 00:00:01 GMT'; - } -} - -function hideLeftPane() { - var leftPane = $('leftPane'); - var rightPane = $('rightPane'); - //showElement('leftPaneToggle'); - makeInvisible(leftPane); - makeInvisible($('paneToggle')); - setStyle('paneToggle', { - 'background-image':'url(img/paneToggle_bg_collapsed.gif)', - 'border-right':'1px solid black' + // Register zenoss scripts + loader.addModule({ + name: "datatablesamskin", + type: "css", + fullpath: "/zport/dmd/yui/datatable/assets/skins/sam/datatable.css" }); - if ($('breadCrumbPane')) { - setStyle('breadCrumbPane', { 'padding-left':'35px'});} - setStyle('rightPane', {'margin-left':'12px'}); - setStyle('leftPaneToggle', { - 'background':'transparent url(img/leftpanetoggle_bg.gif) top left repeat-x', - 'height':'30px', - 'width':'30px' + loader.addModule({ + name: "autocompleteskin", + type: "css", + fullpath: "/zport/dmd/yui/autocomplete/assets/skins/sam/autocomplete.css" }); - disconnectAll('leftPaneToggle'); - connect('leftPaneToggle', 'onclick', function(){ - clearTimeout(t); - doShowing(); + loader.addModule({ + name: "zenautocomplete", + type: "js", + fullpath: "/zport/dmd/javascript/zenautocomplete.js", + requires: ["autocomplete", "animation", "autocompleteskin","zenossutils"] }); - doHover(); -} - -function showLeftPane() { - var leftPane = $('leftPane'); - var rightPane = $('rightPane'); - makeVisible(leftPane); - makeVisible($('paneToggle')); - //hideElement('leftPaneToggle'); - setStyle('paneToggle', { - 'background-image':'url(img/paneToggle_bg.gif)', - 'border-right':'1px solid black' + loader.addModule({ + name: "portlet", + type: "js", + fullpath: "/zport/dmd/javascript/portlet.js", + requires: ["dragdrop", "event", "dom", "animation", + "datasource", "datatable", "datatablesamskin", + "container", "button","zenautocomplete", "zenossutils"] }); - if ($('breadCrumbPane')) { - setStyle('breadCrumbPane', { 'padding-left':'120px'});} - setStyle(rightPane, {'margin-left':'120px'}); - setStyle('leftPaneToggle', { - 'background':'#5a6f8f url(img/leftpanetoggle_bg_expanded.gif) ' + - 'top left repeat-x', - 'height':'30px', - 'width':'115px' + loader.addModule({ + name: "portletsource", + type: "js", + fullpath: "/zport/ZenPortletManager/get_source", + requires: ["portlet"] }); - disconnectAll('leftPaneToggle'); - connect('leftPaneToggle','onclick',toggleLeftPane); - cancelHover(); -} - -function toggleLeftPane() { - var leftPane = $('leftPane'); - if (!isVisible(leftPane)) { showLeftPane() } - else { hideLeftPane() } -} - -function doHiding() { - hideElement($('leftPane')); - hideElement($('paneToggle')); -} - -function doShowing() { - showElement($('leftPane')); - showElement($('paneToggle')); -} - -var t; -function doHover() { - var leftPane = $('leftPane'); - var paneToggle = $('paneToggle'); - var leftPaneToggle = $('leftPaneToggle'); - var lpPopup = leftPane; - setStyle(paneToggle, { - 'z-index':'10000' + loader.addModule({ + name: "zenossutils", + type: "js", + fullpath: "/zport/javascript/zenoss-utils.js", + requires: ['dom', 'event'] }); - setStyle(lpPopup, { - 'position':'absolute', -// 'background-color':'white', -// 'padding':'2px', -// 'padding-top':'2px', - 'z-index':'10000' + loader.addModule({ + name: "devicezengrid", + type: "js", + fullpath: "/zport/dmd/javascript/devicezengrid.js", + requires: ['zenossutils'] }); - connect(leftPane, 'onmouseover', function(){ - clearTimeout(t); - doShowing(); + loader.addModule({ + name: "eventzengrid", + type: "js", + fullpath: "/zport/dmd/javascript/zengrid.js", + requires: ['zenossutils'] }); - connect($('paneToggle'), 'onmouseover', function(){ - clearTimeout(t); - doShowing(); + loader.addModule({ + name: 'geomap', + type: 'js', + fullpath: '/zport/dmd/javascript/geomap.js', + requires: ['zenossutils', 'container'] }); - connect(paneToggle,'onmouseout',function(){ - t=setTimeout('doHiding()',500); + loader.addModule({ + name: 'simplegeomap', + type: 'js', + fullpath: '/zport/dmd/javascript/geomap-2.1.js', + requires: ['zenossutils', 'container'] }); - connect(leftPane, 'onmouseout', function(){ - t=setTimeout('doHiding()',500); + loader.addModule({ + name: 'swoopygraphs', + type: 'js', + fullpath: '/zport/dmd/zenrrdzoom.js', + requires: ['zenossutils'] }); - connect('leftPaneToggle', 'onmouseout', function(){ - t=setTimeout('doHiding()',500); - }); - connect(paneToggle, 'onclick', function(){ - clearTimeout(t); - toggleLeftPane(); - }); - connect('leftPaneToggle','onmouseover', function() { - setStyle('leftPaneToggle', { - 'background':'transparent ' + - 'url("img/leftpanetoggle_bg_depressed.gif") top left repeat-x' - }) - }); - connect('leftPaneToggle','onmouseout', function() { - setStyle('leftPaneToggle', { - 'background':'transparent ' + - 'url("img/leftpanetoggle_bg.gif") top left repeat-x' - }) - }); - connect('leftPaneToggle', 'onclick', function(){ - clearTimeout(t); - doShowing(); - }); - setCookie('Zenoss_Collapsed_Menu', 'true',30,'/','',''); + return loader; } -function cancelHover() { - var leftPane = $('leftPane'); - var paneToggle = $('paneToggle'); - if (leftPane && paneToggle) { - setStyle(paneToggle, {'z-index':'1'}); - setStyle(leftPane, {'z-index':'1'}); - disconnectAll(paneToggle); - disconnectAll(leftPane); - disconnectAll('leftPaneToggle'); - connect('leftPaneToggle', 'onclick', toggleLeftPane); - connect('leftPaneToggle','onmouseover', function() { - setStyle('leftPaneToggle', { - 'background':'transparent ' + - 'url("img/leftpanetoggle_bg_expanded_depressed.gif") '+ - 'top left repeat-x' - }) - }); - connect('leftPaneToggle','onmouseout', function() { - setStyle('leftPaneToggle', { - 'background':'transparent ' + - 'url("img/leftpanetoggle_bg_expanded.gif") top left repeat-x' - }) - }); - deleteCookie('Zenoss_Collapsed_Menu','/',''); - updateNodeAttributes(leftPane, { - 'style':'display:block' - });} -} +//Declare the Zenoss namespace +YAHOO.namespace("zenoss"); -function checkForCollapsed() { - var x = getCookie('Zenoss_Collapsed_Menu'); - if ($('leftPaneToggle')){ - if (!x){ - disconnectAll('leftPaneToggle'); - connect('leftPaneToggle','onclick',toggleLeftPane); - connect('leftPaneToggle','onmouseover', function() { - setStyle('leftPaneToggle', { - 'background':'transparent ' + - 'url("img/leftpanetoggle_bg_expanded_depressed.gif") top left repeat-x' - }) - }); - connect('leftPaneToggle','onmouseout', function() { - setStyle('leftPaneToggle', { - 'background':'transparent ' + - 'url("img/leftpanetoggle_bg_expanded.gif") top left repeat-x' - }) - }); - } else { - hideLeftPane(); - } - } -} +// Put the loader somewhere accessible +YAHOO.zenoss.getLoader = getLoader; -function getChildCheckboxes(element) { - return filter( - function(x){return x.type=='checkbox'}, - element.getElementsByTagName('input') - ) -} - -var tablesOnPage=0; -function insertSelBar(table, index) { - var getselall = function() { - return function() {selectAllCheckboxes(table)} - } - var getselnone = function() { - return function() {selectNoneCheckboxes(table)} - } - var all = LI({id:'selectall_' + index}, 'All'); - var nun = LI({id:'selectnone_' + index}, 'None'); - var selbar = DIV({'class':'zentable_selectionbar'}, - [ 'Select: ', UL(null, [all, nun ]) ]); - insertSiblingNodesBefore(table, selbar); - connect(all, 'onclick', getselall()); - connect(nun, 'onclick', getselnone()); -} - -function selectAllCheckboxes(table) { - var cbs = getChildCheckboxes(table); - map(function(x){x.checked=true},cbs); -} - -function selectNoneCheckboxes(table) { - var cbs = getChildCheckboxes(table); - map(function(x){x.checked=null},cbs); -} - -function addSelectionBar() { - var tables = getElementsByTagAndClassName('table', 'innerzentable'); - for (i=0;i<tables.length;i++) { - if (!getNodeAttribute(tables[i], 'noselectionbar')) { - var inputs = tables[i].getElementsByTagName('input'); - var cbs = filter(function(x){return x.type=='checkbox'}, inputs); - if (cbs.length>1) insertSelBar(tables[i], i); - } - } -} - -function applyBrowserSpecificStyles() { - if (navigator.userAgent.match('Mac')) { - var searchform=$("searchform-label"); - if (searchform) - setStyle(searchform, { - 'left':'-5em' - }); - } -} - -var removeAutoComplete = function(el) { - setNodeAttribute(el, 'autocomplete', 'off'); -} - -var removeElementAutoCompletes = function() { - var inputs = $$('input'); - map(removeAutoComplete, inputs); -} - -addLoadEvent(removeElementAutoCompletes); -addLoadEvent(applyBrowserSpecificStyles); -addLoadEvent(addSelectionBar); -addLoadEvent(checkForCollapsed); - - -postJSONDoc = function (url, postVars) { - var req = getXMLHttpRequest(); - req.open("POST", url, true); - req.setRequestHeader("Content-type", - "application/x-www-form-urlencoded"); - var data = queryString(postVars); - var d = sendXMLHttpRequest(req, data); - return d.addCallback(evalJSONRequest); - -} - -var cancelWithTimeout = function (deferred, timeout) { - var canceller = callLater(timeout, function () { - // cancel the deferred after timeout seconds - deferred.cancel(); - //log("cancel load data") - }); - return deferred.addCallback(function (res) { - // if the deferred fires successfully, cancel the timeout - canceller.cancel(); - return res; - }); -}; - -function handle(delta) { - if (delta < 0) - /* something. */; - else - /* something. */; -} - -function wheel(event){ - var delta = 0; - if (!event) event = window.event; - if (event.wheelDelta) { - delta = event.wheelDelta/120; - if (window.opera) delta = -delta; - } else if (event.detail) { - delta = -event.detail/3; - } - if (delta) - handle(delta); - if (event.preventDefault) - event.preventDefault(); - event.returnValue = false; -} - -function captureSubmit(e){ - switch (e.key().string) { - case 'KEY_ENTER': - var submit = $('dialog_submit'); - submit.click(); - return; - default: - } -} - - -function checkValidId(e){ - var errmsg = $('errmsg'); - var input = $('new_id'); - var label = $('new_id_label'); - var new_id = escape(input.value); - var submit = $('dialog_submit'); - var path = $('checkValidIdPath').value - - errmsg.innerHTML = ""; - Morph(input, {"style": {"color": "black"}}); - Morph(label, {"style": {"color": "white"}}); - - d = callLater(0, doXHR, path+'/checkValidId', {queryString:{'id':new_id}}); - d.addCallback(function (r) { - if (r.responseText == 'True') { - submit.disabled = false; - if (e && e.key().string == 'KEY_ENTER') submit.click(); - } else { - submit.disabled = true; - Morph(input, {"style": {"color": "red"}}); - Morph(label, {"style": {"color": "red"}}); - errmsg.innerHTML = r.responseText; - shake(input); - shake(label); - shake(errmsg); - } - }); -} - -function connectTextareas() { - - var vDims, vPos, aDims, aPos, rightedge_area, rightedge_vp; - - var refreshVars = function() { - vDims = getViewportDimensions(); - vPos = getViewportPosition(); - rightedge_vp = vDims.w + vPos.x; - var area = $$('textarea')[0]; - aDims = getElementDimensions(area); - aPos = getElementPosition(area); - rightedge_area = aDims.w + aPos.x; - } - - function resizeAll() { - refreshVars(); - map(resizeArea, $$('textarea')); - } - - function resizeArea(area) { - var w = aDims.w + rightedge_vp-rightedge_area-50; - setElementDimensions(area, {w:w}); - } - - connect(currentWindow(), 'onresize', function(e) { - map(resizeAll, $$('textarea')); - }); - - map(resizeAll, $$('textarea')); -} - - -ImagePreloader = Class.create(); -ImagePreloader.prototype = { - __init__: function() { - bindMethods(this); - this.buffer = new Image(25, 25); - this.queue = new Array(); - this.lock = new DeferredLock(); - }, - add: function(img) { - this.queue.push(img); - this.start(); - }, - start: function() { - var d = this.lock.acquire(); - d.addCallback(this.next); - }, - next: function() { - var img = this.queue.pop(); - if (img) this.buffer.src = img; - this.lock.release(); - } -} - -/* MENUS */ -var calcSubmenuPos = function(rel, sub) { - // rel is the parent that triggered the submenu show - var pPos = getElementPosition(rel); - var pDims = getElementDimensions(rel); - var sDims = getElementDimensions(sub); - var vDims = getViewportDimensions(); - var vPos = getViewportPosition(); - finalDims = {x:0, y:0} - // Check to see if the menu will appear outside the viewport - // If so, make it fly out on the left - totalX = pPos.x + pDims.w + sDims.w; - finalDims.x = totalX>=vDims.w+vPos.x?-sDims.w+2:sDims.w-10; - // Check to see if the menu bottom is outside the viewport - // If so, move it up so that it fits - totalY = pPos.y + sDims.h; - finalDims.y = totalY>=vDims.h+vPos.y?0-(totalY-vDims.h)+vPos.y:0; - return finalDims -} - - -var calcMenuPos = function(rel, menu) { - var isIE//@cc_on=1 - var pPos = getElementPosition(rel); - var pDims = getElementDimensions(rel); - var vDims = getViewportDimensions(); - var mDims = getElementDimensions(menu); - var vPos = getViewportPosition(); - finalDims = $(menu).className=='devmovemenuitems'?{x:0, y:0}:{x:0, y:24}; - totalX = pPos.x + mDims.w; - finalDims.x = totalX>=vDims.w+vPos.x?pDims.w-mDims.w:3+finalDims.x; - finalDims.x = $(menu).className=='devmovemenuitems'?4-pDims.w:finalDims.x; - finalDims.x -= 1; - totalY = pPos.y + pDims.h + mDims.h; - var topmenu = getElementsByTagAndClassName('div', 'menu_top', menu)[0]; - if (totalY>=vDims.h+vPos.y) { - finalDims.y = 0-(totalY-vDims.h)+vPos.y; - setStyle(topmenu, {'background-image':'url(img/menu_top_rounded.gif)'}); - } else { - setStyle(topmenu, {'background-image':'url(img/menu_top.gif)'}); - } - if (isIE && $(menu).className!='devmovemenuitems') finalDims.y += 10; - return finalDims -} - -var showSubMenu = function(rel, sub) { - var relPos = calcSubmenuPos(rel, sub); - setElementPosition(sub, relPos); - setStyle(sub, {'visibility':'visible','z-index':'10001'}); - hideOtherSubmenus(rel, sub); -} - -var hideSubMenu = function(sub) { - setStyle(sub, {'visibility':'hidden','z-index':'1'}); -} - -var hideMenu = function(menu) { - setStyle(menu, {'visibility':'hidden','z-index':'1'}); - try { - setStyle(getFirstParentByTagAndClassName(menu, 'div', - 'tabletitlecontainer'), {'z-index':'1'}); - } catch(e){noop()} - if (navigator.userAgent.match('Mac')) { - try {setStyle(eventZenGrid.scrollbar, {'overflow':'auto'})} - catch(e) {noop()}; - } -} - -var showMenu = function(rel, menu) { - dropOtherMenuButtons(rel); - var relPos = calcMenuPos(rel, menu); - setElementPosition(menu, relPos); - setStyle(menu, {'visibility':'visible','z-index':'10000', - 'zoom':1}); - if (navigator.userAgent.match('Mac')) { - try {setStyle(eventZenGrid.scrollbar, {'overflow':'hidden'})} - catch(e) {noop()}; - } -} - -var showContextMenu = function() { - var menu = $('contextmenuitems'); - -} - -var dropOtherMenuButtons = function(button) { - var lowerButton = function(btn) { setStyle(btn, {'z-index':'1'})}; - try { - mymenu = getFirstParentByTagAndClassName($(button).parentNode, 'div', - 'tabletitlecontainer'); - } catch(e) { - mymenu = null; - } - others = $$("div.tabletitlecontainer"); - map(lowerButton, others); - if (mymenu) setStyle(mymenu, {'z-index':'10000'}); -} - -var hideOtherSubmenus = function(menu, submenu) { - var smartHideSub = function(sub){if ($(submenu)!=sub) hideSubMenu(sub)} - map(smartHideSub, $$('div.submenu')); -} - -var smto = Array(); - -var registerSubmenu = function(menu, submenu) { - try { - connect(menu, 'onmouseover', function() { - clearTimeout(smto[menu]); - clearTimeout(smto[submenu]); - showSubMenu(menu, submenu); }); - connect(submenu, 'onmouseover', function() { - clearTimeout(smto[menu]); - clearTimeout(smto[submenu]); - showSubMenu(menu, submenu); }); - connect(menu, 'onmouseout', function() { - smto[submenu] = setTimeout('hideSubMenu("'+submenu+'")', 500); }); - connect(submenu, 'onmouseout', function() { - smto[submenu] = setTimeout('hideSubMenu("'+submenu+'")', 500); }); - connect(submenu, 'onclick', function() { - hideSubMenu(submenu); - }); - } catch(e) {noop()}; -} - -var registerMenu = function(button, menu) { - connect(button, 'onclick', function() { - clearTimeout(smto[menu]); - showMenu(button, menu); - addElementClass(button, 'menuselected'); - connect(button, 'onmouseover', function() { - clearTimeout(smto[menu]); - showMenu(button, menu); - addElementClass(button, 'menuselected'); - }); - }); - connect(menu, 'onmouseover', function() { - clearTimeout(smto[menu]); - showMenu(button, menu); - addElementClass(button, 'menuselected'); - connect(button, 'onmouseover', function() { - clearTimeout(smto[menu]); - showMenu(button, menu); - addElementClass(button, 'menuselected'); - }); - }); - connect(menu, 'onclick', function() { - hideMenu(menu); - disconnectAll(button, 'onmouseover'); - }); - connect(button, 'onmouseout', function() { - smto[menu] = setTimeout('hideMenu("'+menu+'");disconnectAll("'+ - button+'", "onmouseover");', 500); }); - connect(menu, 'onmouseout', function() { - smto[menu] = setTimeout('hideMenu("'+menu+'");disconnectAll("'+ - button+'", "onmouseover");', 500); }); -} - - -/* ZGDAgent */ - -function notifyParentOfNewUrl() { - try { - var parwin = currentWindow().parent; - var url = location.href; - parwin.zmlistener.checkForDomainChange(url); - } - catch(e){ noop() } -} - -addLoadEvent(notifyParentOfNewUrl); - -/* Selection stuff */ -var checkboxes; -var currentCheckbox; -var isCheckbox = function(elem) { - return (elem.type=='checkbox') } - -function getCheckboxes(elem) { - var inputs = getElementsByTagAndClassName('input', null); - return filter(isCheckbox, inputs); -} - -function selectCheckboxRange(start, end) { - a = end>start?start:end; - b = start==a?end:start; - newstate = -checkboxes[end].checked; - var todo = checkboxes.slice(a, b+1); - for (i=0;(box=todo[i]);i++) { - if ((!box.checked && newstate) || - (box.checked && !newstate)) box.click(); - //box.checked = newstate; - } -} - -function getIndex(box) { - return findIdentical(checkboxes, box); -} - -function handleChange(e) { - var t = e.src(); - var shift = e.modifier().shift; - if (isCheckbox(t) && shift) { - if (currentCheckbox){ - selectCheckboxRange( - getIndex(currentCheckbox), getIndex(t)); - currentCheckbox = t; - } - } - currentCheckbox = t; -} - -var CbCxs = new Array(); -function connectCheckboxListeners() { - disconnectAllTo(handleChange); - checkboxes = getCheckboxes(); - for (i=0; i<checkboxes.length; i++){ - var box = checkboxes[i]; - connect(box, 'onkeypress', handleChange); - connect(box, 'onclick', handleChange); - } -} - -addLoadEvent(connectCheckboxListeners); - -/* zenmodelfuncs */ - -function zenPageInit(){ - - var as = $$('#leftPane a'); - for(var i=0; i< as.length; i++){ - if (location.href.indexOf('notabs') != -1 && - location.href==as[i].href) { - as[i].className = 'selected'; - } - else if( location.href.indexOf('notabs')==-1 && - as[i].href.indexOf('notabs')==-1 && - location.pathname.indexOf(as[i].pathname) != -1){ - as[i].className = 'selected'; - //lastLeft = as[i]; - } - else { - as[i].className = 'unselected'; - } - } -} - -function submitAction(myform, url) { - myform.action=url - myform.submit() -} - -function submitViaEnter(evt, submitName) { - evt = (evt) ? evt : event; - var target = (evt.target) ? evt.target : evt.srcElement; - var form = target.form; - var charCode = (evt.charCode) ? evt.charCode : - ((evt.which) ? evt.which : evt.keyCode); - if (charCode == 13 || charCode == 3) { - if (submitName) { form.action += "/" + submitName } - form.submit(); - return false; - } - return true; -} - -function blockSubmitViaEnter(evt) { - evt = (evt) ? evt : event; - var charCode = (evt.charCode) ? evt.charCode : - ((evt.which) ? evt.which : evt.keyCode); - if (charCode == 13 || charCode == 3) { - return false; - } - return true; -} - -isSelected = false; - -function toggleSelect(form) { - if (isSelected == false) { - for (i = 0; i < form.length; i++) { - if (form.elements[i].name == "negateFilter") { continue } - form.elements[i].checked = true ; - } - isSelected = true; - form.SelectButton.value = "Deselect All"; - return isSelected; - } - else { - for (i = 0; i < form.length; i++) { - if (form.elements[i].name == "negateFilter") { continue } - form.elements[i].checked = false ; - } - isSelected = false; - form.SelectButton.value = "Select All"; - return isSelected; - } -} - -addLoadEvent(zenPageInit) - -/* DIALOGS */ -function getFormElements(parentbox) { - var firstElement; - var textBoxes = []; - var submitButtons = []; - var formElements = []; - var traverse = function(node) { - if ((node.tagName=='SELECT'||node.tagName=='INPUT'|| - node.tagName=='TEXTAREA')&&node.type!='hidden') { - formElements[formElements.length]=node; - if (!firstElement) - firstElement = node; - } - if (node.tagName=='INPUT'&&(node.type=='text'||node.type=='password')) - textBoxes[textBoxes.length]=node; - if (node.tagName=='INPUT'&&(node.type=='submit'||node.type=='button')&& - node.id!='dialog_cancel') - submitButtons[submitButtons.length] = node; - if (node.childNodes != null) { - for (var i=0;i<node.childNodes.length;i++) { - traverse(node.childNodes.item(i)); - } - } - } - traverse(parentbox); - return [firstElement, textBoxes, submitButtons, formElements] -} - -var Dialog = {}; -Dialog.Box = Class.create(); -Dialog.Box.prototype = { - __init__: function(id) { - bindMethods(this); - this.makeDimBg(); - this.box = $(id); - this.framework = DIV( - {'class':'dialog_container'}, - [ - //top row - DIV({'class':'dbox_tl'}, - [ DIV({'class':'dbox_tr'}, - [ DIV({'class':'dbox_tc'}, null)])]), - //middle row - DIV({'class':'dbox_ml'}, - [ DIV({'class':'dbox_mr'}, - [ DIV({'class':'dbox_mc', - 'id':'dialog_content'}, null)])]), - //bottom row - DIV({'class':'dbox_bl'}, - [ DIV({'class':'dbox_br'}, - [ DIV({'class':'dbox_bc'}, null)])]) - ]); - insertSiblingNodesBefore(this.box, this.framework); - setStyle(this.framework, {'position':'absolute'}); - removeElement(this.box); - appendChildNodes($('dialog_content'), this.box); - this.loadEvents = {}; - this.unloadEvents = {}; - this.box.addLoadEvent = bind(this.addLoadEvent, this); - this.box.addUnloadEvent = bind(this.addUnloadEvent, this); - this.box.show = bind(this.show, this); - this.box.hide = bind(this.hide, this); - this.box.fill = bind(this.fill, this); - this.box.submit_form = bind(this.submit_form, this); - this.box.submit_form_and_check = bind(this.submit_form_and_check, this); - this.parentElem = this.box.parentNode; - this.defaultContent = this.box.innerHTML - setStyl... [truncated message content] |
From: <sv...@ze...> - 2008-05-23 17:59:04
|
Author: jstevens Date: 2008-05-23 13:59:12 -0400 (Fri, 23 May 2008) New Revision: 9342 Added: trunk/Products/ZenModel/migrate/fixZenPackRels.py Modified: trunk/Products/ZenModel/migrate/__init__.py Log: refs #3222 * Added FixZenPackRels migrate script to set packs.manager.obj on each zenpack Modified: trunk/Products/ZenModel/migrate/__init__.py =================================================================== --- trunk/Products/ZenModel/migrate/__init__.py 2008-05-23 15:16:02 UTC (rev 9341) +++ trunk/Products/ZenModel/migrate/__init__.py 2008-05-23 17:59:12 UTC (rev 9342) @@ -145,3 +145,4 @@ import runcommandspermission import winmodelerUnderModeler import removeWinModelerGraphPoints +import fixZenPackRels \ No newline at end of file Added: trunk/Products/ZenModel/migrate/fixZenPackRels.py |
From: <sv...@ze...> - 2008-05-23 15:15:53
|
Author: ian Date: 2008-05-23 11:16:02 -0400 (Fri, 23 May 2008) New Revision: 9341 Removed: sandboxen/ian/branch-3217/ Log: * Removing unnecessary branch |
From: <sv...@ze...> - 2008-05-23 15:09:30
|
Author: ian Date: 2008-05-23 11:09:38 -0400 (Fri, 23 May 2008) New Revision: 9340 Added: sandboxen/ian/branch-3217/ Log: \* Refs #3217: Creating branch for work on ticket #3217 /Products Copied: sandboxen/ian/branch-3217 (from rev 9339, trunk/Products) |