ZabbixAPI+django+nginx简单的二次开发实例(番外)

页面改造篇

上一篇中制作的页面太单调,以下代码实现了下列功能。

1:未监视的显示N/A,并以灰色背景显示

2:Ping为0的背景显示为红色

3:磁盘容量超过80%的显示背景为橙色,超过90%的显示背景为橙色

<!DOCTYPE html>
{% load staticfiles %}
<html>
  <head>
    <link rel="stylesheet" type="text/css" href="{% static ‘css/bootstrap.css‘ %}" />
    <script src="{% static ‘/scripts/jquery.min.js‘ %]"></script>    <!--引入jquery模块 -->
    <script src="{% static ‘/bootstrap/js/bootstrap.min.js‘ %]"></script>   <!--引入bootstrap的js模块 -->
    <title>首页</title>
  </head>
<body onload="onload()">   <!--页面加载完成时调用function -->
  <p class="text-center">
    <span class="label label-default">NotMoniterd</span>  <!--图例 -->
    <span class="label label-warning">Warning</span>
    <span class="label label-danger">Criticl</span>
  </p>
  <table id="t1" border="1" class="table table-striped">
    <tr>
      <th>SERVERNAME</th>
      <th>IPADDRESS</th>
      <th>PING</th>
      <th>C:Usage</th>
      <th>D:Usage</th>
    </tr>
    {% for i in pos %}
    <tr>
      <td><a href="/draw/?uid={{ i.uid }}" target="_blank">{{ i.name }}</a></td>   <!--给链接带上post,接下来做图表时会用到 -->
      <td>{{ i.ip }}</td>
      <td>{{ i.ping }}</td>
      <td>{{ i.diskc }}%</td>
      <td>{{ i.diskd }}%</td>
    </tr>
    {% endfor %}
  </table>
  <script type="text/javascript">
    function onload(){
      var NG = "0";    <!--PING的NG值,这个值是str -->
      var NM = 0       <!--磁盘未监视的值 -->
      var WAR = 80     <!--磁盘警告的值 -->
      var CRI = 90     <!--磁盘严重的值 -->
      var table = document.getElementById("t1")
      for (var s = 0; s < table.rows.length; s ++){   <!--历遍表格 -->
        rowObj = table.rows[s];
        var t2 = rowObj.cells[2].innerHTML;
        var t3 = rowObj.cells[3].innerHTML.slice(0,-2);  <!--slice用来去掉百分号 -->
        var t4 = rowObj.cells[4].innerHTML.slice(0,-2);
        if(t2 == NG){
          rowObj.cells[2].style.backgroundColor="red";;  <!--PINGNG时显示红色 -->
        }
        if(t3 == NM ){
          rowObj.cells[3].style.backgroundColor="grey";; <!--磁盘未监视时显示灰色,并修改文字为N/A -->
          rowObj.cells[3].innerHTML="N/A";;
        }
        else if(t3 >= WAR && t3 < CRI){
          rowObj.cells[3].style.backgroundColor="orange";; <!--磁盘80%-90%时显示橙色 -->
        }
        else if(t3 >= CRI){
          rowObj.cells[3].style.backgroundColor="red";;   <!--磁盘大于90%时显示红色 -->
        }
        if(t4 == NM ){
          rowObj.cells[4].style.backgroundColor="grey";;
          rowObj.cells[4].innerHTML="N/A";;
        }
        else if(t4 >= WAR && t4 < CRI){
          rowObj.cells[4].style.backgroundColor="orange";;
        }
        else if(t4 >= CRI){
          rowObj.cells[4].style.backgroundColor="red";;
        }
      }
    }
  </script>
</body>
</html>

JS这几行代码写的比较乱,应该还可以精简。

时间: 2024-10-14 02:14:27

ZabbixAPI+django+nginx简单的二次开发实例(番外)的相关文章

ZabbixAPI+django+nginx简单的二次开发实例(三)

接上一篇博文 ZabbixAPI+django+nginx简单的二次开发实例(二) 步骤三,站点架构部分 本部分用到的软件 1,Nginx:接受访问请求,应答静态页面,转发动态请求至uwsgi 2,uwsgi:应答动态请求 3,Django:处理后台数据 4,supervisor:管理进程 首先安装Nginx yum install epel-release yum install python-devel nginx 修改配置文件 vim /etc/ngnix/ngnix.conf user

ZabbixAPI+django+nginx简单的二次开发实例(五)

接上一篇博文 ZabbixAPI+django+nginx简单的二次开发实例(四) 步骤五,图形展示 写一个RRDtool图形展示的脚本,由于要和view.py联动,我放在了appname的文件夹下 cd /API/web/pos/moniter vim rrddraw.py #!/usr/bin/env python #coding=utf-8 import rrdtool #ping的图形 def itemping(data): pngname = str(data['pname']) #图

PHPCMS V9 模块开发 二次开发实例 留言本

鄙人实现了PHPCMS V9 产品开发权威指南(2011官方最新版).doc中的留言板实例,并加上模块安装和卸载功能, 程序可以运行,但只实现基本功能,目的是想让和我一样徘徊在PHPCMS门口不知道从哪儿进门的初学者走一下流程,欢迎指正! 对于像我这样的入门者希望先把上面这个文档仔细读一遍再往下看! 声明:我用的是GBK版本. 二次开发流程 创建数据库和数据库表(无数据库操作可略过) 创建数据模型文件 创建模块目录 开发控制器和模板 install和uninstall模块 一.创建数据库表 具体

DEDECMS系统分页标签自定义二次开发实例

//php文件 <?php/** * 热点专题 */require_once(dirname(__FILE__)."/../include/common.inc.php");include_once(DEDEINC.'/datalistcp.class.php'); //热点专题 $dlist = new DataListCP(); //实例化 $dlist->pageSize = 5;   //每页显示条数 $sql = "SELECT * FROM `#@__

最好最实用的PHP二次开发教程

◆二次开发 1.什么是二次开发? 二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能和效果,一般来说都不会改变原有系统的内核. 2.为什么要二次开发? 随着信息化技术的不断发展,IT行业涌现出了一系列优秀的开源作品,其作者或是个人,或是项目小组,或是软件公司.选择和 应用这些优秀的开源软件,并在此基础上进行符合业务需求的二次开发,将给企业节省信息化成本(时间成本及开发成本)的同时,更能带来技术上的保障.这就是 我们常听的:站在巨人的肩膀上,你将看的更远.所以国内

开源系统_二次开发(转)

转自http://www.phpchina.com/portal.php?mod=view&aid=40204, 更多详细资料请参看原文 最好最实用的二次开发教程 ◆二次开发 什么是二次开发? 二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能和效果,一 般来说都不会改变原有系统的内核. 为什么要二次开发? 随着信息化技术的不断发展,IT行业涌现出了一系列优秀的开源作品,其作者或是个人,或是项目小组,或 是软件公司.选择和应用这些优秀的开源软件,并在此基础上进行

EcShop二次开发学习方法

EcShop二次开发学习方法 (2012-03-08 11:10:08) 转载▼ 标签: 京东 公用函数库 二次开发 sql语言 数据库设计 杂谈 分类: ecshop 近年来,随着互联网的发展,电子商务也跟着一起成长,B2B,C2C,B2C的电子商务模式也不断的成熟.这时催生出了众多电子商务相关的PHP开源产品.B2C方面有Ecshop,Zencart,Magento等国内外知名产品.下面我们就来简单介绍一下学习Ecshop二次开发的过程和要注意的一些东西: Ecshop二次开发必备基础: 非

AutoCAD二次开发&mdash;&mdash;AutoCAD.NET API开发环境搭建

AutoCAD二次开发--AutoCAD.NET API开发环境搭建 AutoCAD二次开发--AutoCAD.NET API开发环境搭建 AutoCAD二次开发工具:1986年AutoLisp,1989年ADS,1990年DCL,1993年ADS-RX,1995年ObjectARX,1996年Active X Automation(COM),1997年VBA,1998年Visual Lisp,2006年.net API(DLL). 趋势和方向:AutoCAD.net API(AutoCAD20

结合Django+celery二次开发定时周期任务

需求: 前端时间由于开发新上线一大批系统,上完之后没有配套的报表系统.监控,于是乎开发.测试.产品.运营.业务部.财务等等各个部门就跟那饥渴的饿狼一样需要 各种各样的系统数据满足他们.刚开始一天一个还能满足他们,优化脚本之后只要开发提供查询数据的SQL.收件人.执行时间等等参数就可以几分钟写完一个定时任务脚本 ,到后面不知道是不是吃药了一天三四个定时任务,不到半个月手里一下就20多个定时任务了,渐渐感到力不从心了,而且天天还要给他们修改定时任务的SQL.收件人.执 行时间等等,天天写定时任务脚本