Changeset 87
- Timestamp:
- 03/11/08 02:28:38 (5 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 10 modified
-
controllers/comments.php (modified) (2 diffs)
-
controllers/hosts.php (modified) (1 diff)
-
controllers/layout.php (modified) (1 diff)
-
controllers/nagios.php (modified) (2 diffs)
-
controllers/services.php (modified) (1 diff)
-
js/comments.js (added)
-
js/hostDetail.js (modified) (5 diffs)
-
js/npc.js (modified) (7 diffs)
-
js/serviceDetail.js (modified) (3 diffs)
-
js/services.js (modified) (1 diff)
-
setup.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/controllers/comments.php
r65 r87 14 14 * @version $Id: $ 15 15 */ 16 17 require_once("include/auth.php"); 16 18 17 19 /** … … 69 71 70 72 /** 73 * getHostComments 74 * 75 * An accessor method to return all host comments 76 * 77 * @return string json output 78 */ 79 function getHostComments() { 80 $results = $this->flattenArray($this->comments(null, 'o.objecttype_id = 1')); 81 return($this->jsonOutput($results)); 82 } 83 84 /** 85 * getServiceComments 86 * 87 * An accessor method to return all service comments 88 * 89 * @return string json output 90 */ 91 function getServiceComments() { 92 $results = $this->flattenArray($this->comments(null, 'o.objecttype_id = 2')); 93 return($this->jsonOutput($results)); 94 } 95 96 /** 97 * deleteAllHostComments 98 * 99 * Delete all host comments. 100 * 101 * @return string json output 102 */ 103 function deleteAllHostComments() { 104 105 require_once("plugins/npc/controllers/nagios.php"); 106 107 $seen = array(); 108 109 $results = $this->flattenArray($this->comments(null, 'o.objecttype_id = 1')); 110 111 for ($i = 0; $i < count($results); $i++) { 112 $host = $results[$i]['host_name']; 113 if (!isset($seen[$host])) { 114 $params = array( 115 'command' => 'DEL_ALL_HOST_COMMENTS', 116 'host_name' => $host 117 ); 118 NpcNagiosController::command($params); 119 $seen[$host] = 1; 120 } 121 } 122 } 123 124 /** 125 * deleteAllServiceComments 126 * 127 * Delete all service comments. 128 * 129 * @return string json output 130 */ 131 function deleteAllServiceComments() { 132 133 require_once("plugins/npc/controllers/nagios.php"); 134 135 $seen = array(); 136 137 $results = $this->flattenArray($this->comments(null, 'o.objecttype_id = 2')); 138 139 for ($i = 0; $i < count($results); $i++) { 140 $host = $results[$i]['host_name']; 141 $service = $results[$i]['service_description']; 142 if (!isset($seen[$host][$service])) { 143 $params = array( 144 'command' => 'DEL_ALL_SVC_COMMENTS', 145 'host_name' => $host, 146 'service_description' => $service, 147 ); 148 NpcNagiosController::command($params); 149 $seen[$host][$service] = 1; 150 } 151 } 152 } 153 154 /** 71 155 * comments 72 156 * -
trunk/controllers/hosts.php
r84 r87 233 233 234 234 $cs = array( 235 '0' => '<img src="images/icons/greendot.gif">',236 '1' => '<img src="images/icons/reddot.gif">',237 '2' => '<img src="images/icons/reddot.gif">',238 '-1' => '<img src="images/icons/bluedot.gif">'235 '0' => '<img ext:qtip="UP" src="images/icons/greendot.gif">', 236 '1' => '<img ext:qtip="DOWN" src="images/icons/reddot.gif">', 237 '2' => '<img ext:qtip="UNREACHABLE" src="images/icons/reddot.gif">', 238 '-1' => '<img ext:qtip="PENDING" src="images/icons/bluedot.gif">' 239 239 ); 240 240 -
trunk/controllers/layout.php
r86 r87 61 61 <script type="text/javascript" src="<?php echo $config["url_path"]; ?>plugins/npc/js/servicegroupGrid.js"></script> 62 62 <script type="text/javascript" src="<?php echo $config["url_path"]; ?>plugins/npc/js/servicegroupOverview.js"></script> 63 <script type="text/javascript" src="<?php echo $config["url_path"]; ?>plugins/npc/js/comments.js"></script> 63 64 64 65 <script type="text/javascript"> -
trunk/controllers/nagios.php
r70 r87 16 16 * @version $Id: $ 17 17 */ 18 19 require_once("plugins/npc/nagioscmd.php"); 18 20 19 21 /** … … 40 42 */ 41 43 function command($params) { 42 43 include("plugins/npc/nagioscmd.php");44 44 45 45 $nagios = new NagiosCmd; -
trunk/controllers/services.php
r84 r87 243 243 244 244 $cs = array( 245 '0' => '<img src="images/nagios/recovery.png">',246 '1' => '<img src="images/nagios/warning.png">',247 '2' => '<img src="images/nagios/critical.png">',248 '3' => '<img src="images/nagios/unknown.png">',249 '-1' => '<img src="images/nagios/info.png">'245 '0' => '<img ext:qtip="OK" src="images/icons/greendot.gif">', 246 '1' => '<img ext:qtip="WARNING" src="images/icons/yellowdot.gif">', 247 '2' => '<img ext:qtip="CRITICAL" src="images/icons/reddot.gif">', 248 '3' => '<img ext:qtip="UNKNOWN" src="images/icons/orangedot.gif">', 249 '-1' => '<img ext:qtip="PENDING" src="images/icons/bluedot.gif">' 250 250 ); 251 251 -
trunk/js/hostDetail.js
r84 r87 84 84 // '<img src="/graph_image.php?action=view&local_graph_id='.$this->local_graph_id.'&rra_id=1&graph_height='.$this->height.'&graph_width='.$this->width.'">'; 85 85 return(val); 86 }87 88 function renderCommentType(val) {89 var s;90 switch(val) {91 case '1':92 s = 'User';93 break;94 case '2':95 s = 'Scheduled Downtime';96 break;97 case '3':98 s = 'Flap Detection';99 break;100 case '4':101 s = 'Acknowledgement';102 break;103 }104 return String.format('{0}', s);105 }106 107 function renderPersistent(val) {108 var s;109 switch(val) {110 case '0':111 s = 'No';112 break;113 case '1':114 s = 'Yes';115 break;116 }117 return String.format('{0}', s);118 86 } 119 87 … … 393 361 'comment_id', 394 362 'instance_id', 395 {name: ' entry_time', type: 'date', dateFormat: 'Y-m-d H:i:s'},363 {name: 'comment_time', type: 'date', dateFormat: 'Y-m-d H:i:s'}, 396 364 'entry_type', 397 365 'author_name', … … 406 374 var hcCm = new Ext.grid.ColumnModel([{ 407 375 header:"Entry Time", 408 dataIndex:' entry_time',376 dataIndex:'comment_time', 409 377 renderer: npc.app.formatDate, 410 378 width:120 … … 420 388 header:"Persistent", 421 389 dataIndex:'is_persistent', 422 renderer: renderPersistent,390 renderer:npc.app.renderPersistent, 423 391 width:80 424 392 },{ 425 393 header:"Type", 426 394 dataIndex:'entry_type', 427 renderer: renderCommentType,395 renderer:npc.app.renderCommentType, 428 396 width:100 429 397 },{ 430 398 header:"Expires", 431 399 dataIndex:'expiration_time', 432 renderer: npc.app. formatDate,400 renderer: npc.app.renderCommentExpires, 433 401 width:120 434 402 },{ … … 488 456 displayInfo: true 489 457 }) 490 // The search field won't render :(491 //plugins:[new Ext.ux.grid.Search({492 // mode:'remote',493 // iconCls:false494 //})]495 458 }); 496 459 -
trunk/js/npc.js
r86 r87 277 277 hostStatusImage: function(val){ 278 278 var img; 279 var state; 279 280 if (val == 0) { 280 281 img = 'greendot.gif'; 282 state = "UP"; 281 283 } else if (val == 1) { 282 284 img = 'reddot.gif'; 285 state = "DOWN"; 283 286 } else if (val == 2) { 284 287 img = 'reddot.gif'; 288 state = "UNREACHABLE"; 285 289 } else if (val == -1) { 286 290 img = 'bluedot.gif'; 287 } 288 return String.format('<p align="center"><img src="images/icons/{0}"></p>', img); 291 state = "PENDING"; 292 } 293 return String.format('<p align="center"><img ext:qtip="{0}" src="images/icons/{1}"></p>', state, img); 289 294 }, 290 295 291 296 serviceStatusImage: function(val){ 292 297 var img; 298 var state; 293 299 if (val == 0) { 294 300 img = 'greendot.gif'; 301 state = "OK"; 295 302 } else if (val == 1) { 296 303 img = 'yellowdot.gif'; 304 state = "WARNING"; 297 305 } else if (val == 2) { 298 306 img = 'reddot.gif'; 307 state = "CRITICAL"; 299 308 } else if (val == 3) { 300 309 img = 'orangedot.gif'; 310 state = "UNKNOWN"; 301 311 } else if (val == -1) { 302 312 img = 'bluedot.gif'; 303 } 304 return String.format('<p align="center"><img src="images/icons/{0}"></p>', img); 313 state = "PENDING"; 314 } 315 return String.format('<p align="center"><img ext:qtip="{0}" src="images/icons/{1}"></p>', state, img); 305 316 }, 306 317 … … 309 320 if (record.data.problem_has_been_acknowledged == 1) { 310 321 var ack = record.data.acknowledgement.split("*|*"); 311 img = String.format(' <img ext:qtitle="Acknowledged by {0}" ext:qtip=\'{1}\' src="images/icons/wrench.png">', ack[0], ack[1]); 322 var by = ''; 323 if (ack[0]) { 324 by = 'by ' + ack[0]; 325 } 326 img = String.format(' <img ext:qtip="This problem has been acknowledged {0}" src="images/icons/wrench.png">', by); 312 327 } 313 328 if (record.data.notifications_enabled == 0) { … … 315 330 } 316 331 if (record.data.comment) { 317 var c = record.data.comment.split("*|*");318 img = String.format(' <img qtitle="{0}" ext:qtip=\'{1}\' src="images/icons/comment.png">', c[0], c[1]) + img;332 //var c = record.data.comment.split("*|*"); 333 img = String.format(' <img ext:qtip="There are comments for this item" src="images/icons/comment.png">') + img; 319 334 } 320 335 if (record.data.is_flapping) { … … 327 342 } 328 343 return String.format('<div><div style="float: left;">{0}</div><div style="float: right;">{1}</div></div>', val, img); 344 }, 345 346 renderCommentType: function(val) { 347 var s; 348 switch(val) { 349 case '1': 350 s = 'User'; 351 break; 352 case '2': 353 s = 'Scheduled Downtime'; 354 break; 355 case '3': 356 s = 'Flap Detection'; 357 break; 358 case '4': 359 s = 'Acknowledgement'; 360 break; 361 } 362 return String.format('{0}', s); 363 }, 364 365 renderPersistent: function(val) { 366 var s; 367 switch(val) { 368 case '0': 369 s = 'No'; 370 break; 371 case '1': 372 s = 'Yes'; 373 break; 374 } 375 return String.format('{0}', s); 376 }, 377 378 renderCommentExpires: function(val, p, record) { 379 if (record.data.is_persistent == 1) { 380 return String.format('NA'); 381 } 382 if(typeof val == "object") { 383 if(val.getYear() == '69') { 384 return String.format('NA'); 385 } else { 386 return String.format(val.dateFormat(npc.app.params.npc_date_format + ' ' + npc.app.params.npc_time_format)); 387 } 388 } 389 return val; 329 390 }, 330 391 … … 631 692 text:'Comments', 632 693 iconCls:'tleaf', 633 leaf:true 694 leaf:true, 695 listeners: { 696 click: function() { 697 npc.app.comments(); 698 } 699 } 634 700 },{ 635 701 text:'Downtime', … … 742 808 var sgHSC = sgHS.isVisible(); 743 809 810 var hgSS = Ext.getCmp('hostgroupServiceStatus'); 811 var hgSSC = hgSS.isVisible(); 812 813 var hgHS = Ext.getCmp('hostgroupHostStatus'); 814 var hgHSC = hgHS.isVisible(); 815 744 816 var form = new Ext.form.FormPanel({ 745 817 //title: 'Show/hide portlets', … … 819 891 } 820 892 },{ 893 boxLabel: 'Hostgroup: Service Status', 894 hideLabel: true, 895 xtype:'checkbox', 896 checked: sgSSC, 897 listeners: { 898 check: function(cb, checked) { 899 if (checked) { 900 hgSS.show(); 901 } else { 902 hgSS.hide(); 903 } 904 } 905 } 906 },{ 907 boxLabel: 'Hostgroup: Host Status', 908 hideLabel: true, 909 xtype:'checkbox', 910 checked: sgHSC, 911 listeners: { 912 check: function(cb, checked) { 913 if (checked) { 914 hgHS.show(); 915 } else { 916 hgHS.hide(); 917 } 918 } 919 } 920 },{ 821 921 boxLabel: 'Servicegroup: Service Status', 822 922 hideLabel: true, -
trunk/js/serviceDetail.js
r84 r87 84 84 // '<img src="/graph_image.php?action=view&local_graph_id='.$this->local_graph_id.'&rra_id=1&graph_height='.$this->height.'&graph_width='.$this->width.'">'; 85 85 return(val); 86 }87 88 function renderCommentType(val) {89 var s;90 switch(val) {91 case '1':92 s = 'User';93 break;94 case '2':95 s = 'Scheduled Downtime';96 break;97 case '3':98 s = 'Flap Detection';99 break;100 case '4':101 s = 'Acknowledgement';102 break;103 }104 return String.format('{0}', s);105 }106 107 function renderPersistent(val) {108 var s;109 switch(val) {110 case '0':111 s = 'No';112 break;113 case '1':114 s = 'Yes';115 break;116 }117 return String.format('{0}', s);118 86 } 119 87 … … 407 375 var scCm = new Ext.grid.ColumnModel([{ 408 376 header:"Entry Time", 409 dataIndex:' entry_time',377 dataIndex:'comment_time', 410 378 renderer: npc.app.formatDate, 411 379 width:120 … … 421 389 header:"Persistent", 422 390 dataIndex:'is_persistent', 423 renderer: renderPersistent,391 renderer:npc.app.renderPersistent, 424 392 width:80 425 393 },{ 426 394 header:"Type", 427 395 dataIndex:'entry_type', 428 renderer: renderCommentType,396 renderer:npc.app.renderCommentType, 429 397 width:100 430 398 },{ 431 399 header:"Expires", 432 400 dataIndex:'expiration_time', 433 renderer: npc.app. formatDate,401 renderer: npc.app.renderCommentExpires, 434 402 width:120 435 403 },{ -
trunk/js/services.js
r85 r87 155 155 centerTabPanel.doLayout(); 156 156 157 // Add button to toggle betwen handled and unhandled problems158 /*159 if (filter == 'not_ok') {160 var bbar = grid.getBottomToolbar();161 bbar.addSeparator();162 bbar.addButton({163 id:'unhandledButton',164 text:'Unhandled',165 enableToggle: true,166 iconCls:'errorGo',167 handler : function(){168 if (Ext.getCmp('unhandledButton').pressed) {169 grid.store.load({params:{start:0, limit:pageSize, unhandled:1}});170 } else {171 grid.store.load({params:{start:0, limit:pageSize}});172 }173 }174 });175 }176 */177 178 157 // Render the grid 179 158 grid.render(); -
trunk/setup.php
r86 r87 41 41 'url' => 'http://cactiusers.org/cacti/versions.php' 42 42 ); 43 } 44 45 function npc_top_graph_refresh() { 46 // Don't want to refresh so set very high 47 return('2592000'); 43 48 } 44 49