⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stats-dashboard.jsp

📁 openfire 服务器源码下载
💻 JSP
📖 第 1 页 / 共 3 页
字号:
<%@ page import="org.jivesoftware.openfire.archive.Conversation" %><%@ page import="org.jivesoftware.openfire.archive.ConversationManager" %><%@ page import="org.jivesoftware.openfire.reporting.graph.GraphEngine" %><%@ page import="org.jivesoftware.openfire.reporting.stats.StatisticsModule" %><%@ page import="org.jivesoftware.openfire.reporting.stats.StatsAction"%><%@ page import="org.jivesoftware.openfire.reporting.stats.StatsViewer"%><%@ page import="org.jivesoftware.openfire.user.UserNameManager"%><%@ page import="org.jivesoftware.openfire.user.UserNotFoundException"%><%@ page import="org.jivesoftware.util.CookieUtils"%><%@ page import="org.jivesoftware.util.LocaleUtils"%><%@ page import="org.jivesoftware.util.StringUtils"%><%@ page import="org.xmpp.packet.JID"%><%@ page import="javax.servlet.http.Cookie"%><%@ page import="java.net.URLEncoder"%><%@ page import="java.util.*"%><%@ page import="org.jivesoftware.openfire.XMPPServer" %><%@ page import="org.jivesoftware.openfire.plugin.MonitoringPlugin" %><%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %><%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt" %><%    String sessionKey = StatisticsModule.SESSIONS_KEY;    MonitoringPlugin plugin = (MonitoringPlugin) XMPPServer.getInstance().getPluginManager().getPlugin("monitoring");    ConversationManager conversationManager = (ConversationManager)plugin.getModule(ConversationManager.class);    StatsViewer viewer = (StatsViewer)plugin.getModule(StatsViewer.class);    String timePeriod = "last60minutes";    Cookie timePeriodCookie = CookieUtils.getCookie(request, COOKIE_TIMEPERIOD);    if (timePeriodCookie != null) {        String cookieValue = timePeriodCookie.getValue();        timePeriod = cookieValue;    }%><html><head>    <title><fmt:message key="admin.sidebar.statistics.name" /></title>    <meta name="pageID" content="statistics"/>    <script src="/js/prototype.js" type="text/javascript"></script>    <script src="/js/scriptaculous.js" type="text/javascript"></script>    <script src="dwr/engine.js" type="text/javascript" ></script>	<script src="dwr/util.js" type="text/javascript" ></script>    <script src="dwr/interface/Stats.js" type="text/javascript"></script>    <style type="text/css">    .stats-description {        color : black;        font-size : 18px;        font-weight : bold;    }    .stats-current {        color : #555555;        font-size : 20px;        font-weight : bold;    }    .stat {        border : 1px;        border-color : #ccc;        border-style : solid;        background-color : #fffBe2;        -moz-border-radius: 5px;    }    .stat_selected {        border : 1px;        border-color : #f6ab4d;        border-style : solid;        background-color : #fffBc2;        -moz-border-radius: 5px;    }    .stat_enlarge_link {        display: block;        position: relative;        margin: 4px 0px 2px 6px;        padding-left: 18px;        background: url(images/reports_dash-expand-small.gif) no-repeat;        font-size: 11px;    }    .stat_shrink_link {        position: relative;        margin: 4px 0px 2px 6px;        padding-left: 18px;        background: url(images/reports_dash-contract-small.gif) no-repeat;        font-size: 11px;    }    .timeControl {        border : 1px;        border-color : #ccc;        border-style : solid;        background-color : white;    }    .wrapper {        border : 1px;        border-color : #ccc;        border-style : solid;        -moz-border-radius: 5px;    }    .quickstats {        border: 1px solid #cccccc;        border-bottom: none;    }    .quickstats thead th {        background-color: #eeeeee;        text-align: left;        padding: 3px;        border-bottom: 1px solid #cccccc;    }    .quickstats tbody td {        padding: 6px;        border-bottom: 1px solid #cccccc;        font-size: 11px;    }    .conversation {        border-bottom : 1px;        border-top : 0px;        border-right : 0px;        border-left : 0px;        border-color : #ccc;        border-style : solid;    }    .conversation table td {        font-size: 11px;    }    conv-users, conv-messages {	    float: left;        display: block;	    text-decoration: none;    }</style><style type="text/css">	@import "style/style.css";</style></head><body><script type="text/javascript">PeriodicalExecuter.prototype.registerCallback = function() {    this.intervalID = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);}PeriodicalExecuter.prototype.stop = function() {    clearInterval(this.intervalID);}DWREngine.setErrorHandler(handleError);window.onerror = handleError;function handleError() {    // swallow errors: probably caused by the server being down}var peStats = new PeriodicalExecuter(statsUpdater, 30);var currentTimePeriod = '<%= timePeriod %>';function statsUpdater() {    try {        Stats.getUpdatedStats(currentTimePeriod, updateStats);    } catch(err) {        // swallow errors    }}function changeTimePeriod(period) {    if (currentTimePeriod != period) {        $(currentTimePeriod).className = '';        $(period).className = 'timeControl';        currentTimePeriod = period;        createCookie("<%= COOKIE_TIMEPERIOD %>",currentTimePeriod,1000);        Stats.getUpdatedStats(currentTimePeriod, updateStats);    }}function updateStats(stats) {    for (var stat in stats) {        updateTable(stat, stats[stat]);        if (stat == 'conversations' || stat == 'packet_count' || stat == 'sessions') {            updateGraph('sparklines-' + stat, 'stat=' + stat + '&sparkline=true');        } else {            updateGraph('sparklines-' + stat, 'stat=' + stat + '&sparkline=true&color=dark');        }    }}function updateTable(id, data) {    $(id + '.low').innerHTML = data.low;    $(id + '.high').innerHTML = data.high;    if ($(id + '.count') != undefined) {        $(id + '.count').innerHTML = data.count;    }}function updateGraph(graphid, graphkey) {   var d = new Date();   var t = d.getTime()   $(graphid).src = 'graph?' + graphkey + '&t=' + t + "&timeperiod=" + currentTimePeriod + "&format=png";    statParam = graphkey.split('&');    statName = statParam[0].split('=');    if (isSnapshotDetailVisible && currentSnapshot == statName[1]) {        viewElement = $('snapshot-detail-image');        viewElement.src = 'graph?stat=' + statName[1] + '&t=' + t + '&timeperiod=' + currentTimePeriod + '&width=700&height=250&format=png'    }}var lastConversationID = 0;var getConversationsDelay = 10000;var insertConversationsDelay = 2000;var peGetConversations;var peInsertConversations;var conversations = new Array();function startupConversations() {    conversationUpdater();    peGetConversations = new PeriodicalExecuter(conversationUpdater, getConversationsDelay/1000);}function conversationUpdater() {    Stats.getNLatestConversations(6, lastConversationID, updateConversations);}function updateConversations(data) {    // list of map objects with users, lastactivity, messages keys    if (data.length > 0) {        for (var i=0; i<data.length; i++) {            conversations[conversations.length] = data[i];        }        lastConversationID = conversations[conversations.length -1].conversationid;    }    // adjust insert frequency based on how many are in the queue    if (data.length > 0 && Math.round(getConversationsDelay/(data.length)) > 2000) {        insertConversationsDelay = Math.round(10000/(data.length));    } else {        insertConversationsDelay = 2000;    }    if (peInsertConversations) {        peInsertConversations.stop();    }    peInsertConversations = new PeriodicalExecuter(insertConversation, insertConversationsDelay/1000);}function insertConversation() {    if (conversations.length > 0) {        if ($('conversations-scroller-none') != undefined) {            Element.hide('conversations-scroller-none');            Element.show('conversations-scroller');        }        var conversation = conversations.shift();        convTableID = 'conversations-scroller';        var tbody = $(convTableID);        var rows = tbody.getElementsByTagName("div");        for (var i = rows.length-1; i > 0; i--) {            rows[i].innerHTML = rows[i-1].innerHTML;        }        newRow = document.createElement("div");        newRow.setAttribute("class", "conversation");        newRow.setAttribute('conversationid', conversation.conversationid);        users = conversation.users;        userString = '';        for (i=0; i<users.length; i++) {            userString += users[i] + "<br />";        }        newRowHTML =        '<table cellspacing="0" cellpadding="0" border="0">' +

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -