1<?php 2/* 3** Zabbix 4** Copyright (C) 2001-2021 Zabbix SIA 5** 6** This program is free software; you can redistribute it and/or modify 7** it under the terms of the GNU General Public License as published by 8** the Free Software Foundation; either version 2 of the License, or 9** (at your option) any later version. 10** 11** This program is distributed in the hope that it will be useful, 12** but WITHOUT ANY WARRANTY; without even the implied warranty of 13** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14** GNU General Public License for more details. 15** 16** You should have received a copy of the GNU General Public License 17** along with this program; if not, write to the Free Software 18** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19**/ 20 21 22class CTableInfo extends CTable { 23 24 protected $message; 25 26 public function __construct() { 27 parent::__construct(); 28 29 $this->addClass(ZBX_STYLE_LIST_TABLE); 30 $this->setNoDataMessage(_('No data found.')); 31 $this->addMakeVerticalRotationJs = false; 32 } 33 34 public function toString($destroy = true) { 35 $tableId = $this->getId(); 36 37 if(!$tableId) { 38 $tableId = uniqid('t'); 39 $this->setId($tableId); 40 } 41 42 $string = parent::toString($destroy); 43 44 if ($this->addMakeVerticalRotationJs) { 45 $string .= get_js( 46 'var makeVerticalRotationForTable = function() {'."\n". 47 ' jQuery("#'.$tableId.'").makeVerticalRotation();'."\n". 48 '}'."\n". 49 "\n". 50 'if (!jQuery.isReady) {'."\n". 51 ' jQuery(document).ready(makeVerticalRotationForTable);'."\n". 52 '}'."\n". 53 'else {'."\n". 54 ' makeVerticalRotationForTable();'."\n". 55 '}', 56 true); 57 } 58 return $string; 59 } 60 61 public function setNoDataMessage($message) { 62 $this->message = $message; 63 return $this; 64 } 65 66 /** 67 * Rotate table header text vertical. 68 * Cells must be marked with "vertical_rotation" class. 69 */ 70 public function makeVerticalRotation() { 71 $this->addMakeVerticalRotationJs = true; 72 return $this; 73 } 74 75 public function endToString() { 76 $ret = ''; 77 if ($this->rownum == 0 && $this->message !== null) { 78 $ret .= $this->prepareRow(new CCol($this->message), ZBX_STYLE_NOTHING_TO_SHOW)->toString(); 79 } 80 $ret .= parent::endToString(); 81 return $ret; 82 } 83} 84