48
48
sendJSLibraries(1);
50
sendString("<script type=\"text/javascript\">\n");
51
sendString(" var chart;\n");
52
sendString(" $(document).ready(function() {\n");
53
sendString(" chart = new Highcharts.Chart({\n");
54
sendString(" chart: {\n");
55
sendString(" renderTo: 'container',\n");
56
sendString(" plotBackgroundColor: null,\n");
57
sendString(" plotBorderWidth: null,\n");
58
sendString(" plotShadow: false\n");
60
sendString(" title: {\n");
61
sendString(" text: '");
65
sendString(" tooltip: {\n");
66
sendString(" formatter: function() {\n");
67
sendString(" return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %';\n");
70
sendString(" plotOptions: {\n");
71
sendString(" pie: {\n");
72
sendString(" allowPointSelect: true,\n");
73
sendString(" cursor: 'pointer',\n");
74
sendString(" dataLabels: {\n");
75
sendString(" enabled: true,\n");
77
sendString(" showInLegend: true\n");
80
sendString(" series: [{\n");
81
sendString(" type: 'pie',\n");
82
sendString(" name: '");
85
sendString(" data: [\n");
50
sendString("</head>\n<body>\n");
52
sendString("\n\n<script type=\"text/javascript\">\n");
53
sendString("var data = [\n");
88
56
/**********************************************************/
90
58
static void send_graph_footer(void) {
59
sendString("$(document).ready(function(){\n\n");
60
sendString(" $.jqplot('container', [data], \n");
62
sendString(" seriesDefaults: {\n");
63
sendString(" renderer: jQuery.jqplot.PieRenderer, \n");
64
sendString(" rendererOptions: {\n");
65
sendString(" showDataLabels: true\n");
69
/* Remove border around graphs */
70
sendString(" grid: { \n");
71
sendString(" gridLineColor: 'transparent', \n");
72
sendString(" background: 'transparent', \n");
73
sendString(" borderColor: 'transparent', \n");
74
sendString(" borderWidth: '1', \n");
75
sendString(" shadow: false \n");
78
sendString(" legend: { show:true, location: 'e' }\n");
94
81
sendString(" });\n");
95
sendString(" </script>\n");
82
sendString(" </script>\n\n");
97
84
sendString("<div id=\"container\" style=\"width: 350px; height: 320px; margin: 0 auto\"></div>\n");
85
sendString("</body>\n</html>\n");
100
88
/**********************************************************/
1010
999
sendJSLibraries(1);
1001
sendString("</head>\n<body>\n");
1012
1003
sendString("<script type=\"text/javascript\">\n");
1013
sendString(" var chart;\n");
1014
1004
sendString(" $(document).ready(function() {\n");
1015
sendString(" chart = new Highcharts.Chart({\n");
1016
sendString(" chart: {\n");
1017
sendString(" renderTo: 'container',\n");
1018
sendString(" defaultSeriesType: 'bar'\n");
1019
sendString(" },\n");
1020
sendString(" title: {\n");
1021
sendString(" text: 'Top Host Talkers'\n");
1022
sendString(" },\n");
1023
sendString(" xAxis: {\n");
1024
sendString(" categories: [\n");
1006
sendString(" var ticks = [ ");
1026
1008
for(i=0; i<num_datapoints; i++) {
1031
1013
sendString(buf);
1035
sendString(" },\n");
1036
sendString(" yAxis: {\n");
1037
sendString(" min: 0,\n");
1038
sendString(" title: {\n");
1039
sendString(" text: 'Host Traffic %'\n");
1040
sendString(" },\n");
1041
sendString(" stackLabels: {\n");
1042
sendString(" enabled: true,\n");
1043
sendString(" style: {\n");
1044
sendString(" fontWeight: 'bold',\n");
1045
sendString(" color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'\n");
1048
sendString(" },\n");
1051
sendString(" legend: {\n");
1052
sendString(" align: 'right',\n");
1053
sendString(" x: -100,\n");
1054
sendString(" verticalAlign: 'top',\n");
1055
sendString(" y: 20,\n");
1056
sendString(" floating: true,\n");
1057
sendString(" backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColorSolid) || 'white',\n");
1058
sendString(" borderColor: '#CCC',\n");
1059
sendString(" borderWidth: 1,\n");
1060
sendString(" shadow: false\n");
1061
sendString(" },\n");
1064
sendString(" tooltip: {\n");
1065
sendString(" formatter: function() {\n");
1067
sendString(" return '<b>'+ this.x +'</b><br/>'+\n");
1068
sendString(" this.series.name +': '+ this.y +'<br/>'+\n");
1069
sendString(" 'Total: '+ this.point.stackTotal;\n");
1071
sendString(" return ''+ this.series.name +': '+ Math.round(this.percentage) +'%';\n");
1074
sendString(" },\n");
1075
sendString(" plotOptions: {\n");
1076
sendString(" series: {\n");
1077
sendString(" stacking: 'percent',\n");
1078
sendString(" dataLabels: {\n");
1079
sendString(" enabled: false,\n");
1080
sendString(" color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white'\n");
1083
sendString(" },\n");
1084
sendString(" series: [\n");
1017
sendString(" var series = [ ");
1086
1019
for(i=0; i<num_talkers; i++) {
1087
1020
HostTraffic *el, tmpEl;
1088
1021
char buf[LEN_GENERAL_WORK_BUFFER], *c;
1090
1023
el = quickHostLink(talkers[i].hostSerial, myGlobals.actualReportDeviceId, &tmpEl);
1092
1025
if((el->hostResolvedNameType == FLAG_HOST_SYM_ADDR_TYPE_NONE)
1093
1026
|| (el->hostResolvedName[0] == '\0') /* Safety check */
1115
1048
c = el->hostNumIpAddress;
1117
safe_snprintf(__FILE__, __LINE__, buf, sizeof(buf), "\t\t{\n\t\tname: '%s',\n", c);
1121
sendString("\t\t\tdata: [\n");
1050
safe_snprintf(__FILE__, __LINE__, buf, sizeof(buf), "{ label: '%s'}, ", c);
1053
sendString("];\n\n");
1055
for(i=0; i<num_talkers; i++) {
1058
safe_snprintf(__FILE__, __LINE__, buf, sizeof(buf), "var data%d = [ ", i);
1122
1061
for(j=0; j<num_datapoints; j++) {
1124
1063
if(j > 0) sendString(", ");
1126
1065
sendString(buf);
1129
sendString("]\n\t\t},\n");
1071
sendString(" $.jqplot('container', [ ");
1072
for(i=0; i<num_talkers; i++) {
1075
if(i > 0) sendString(", ");
1076
safe_snprintf(__FILE__, __LINE__, buf, sizeof(buf), "data%d", i);
1080
sendString(" ], {\n");
1081
sendString(" animate: !$.jqplot.use_excanvas,\n");
1082
sendString(" stackSeries: true,\n");
1083
// sendString(" title : 'Top Host Talkers',\n");
1084
sendString(" seriesDefaults:{\n");
1085
sendString(" renderer:$.jqplot.BarRenderer,\n");
1087
sendString(" },\n");
1089
sendString(" grid: { \n");
1090
// sendString(" gridLineColor: 'transparent', \n");
1091
// sendString(" background: 'transparent', \n");
1092
sendString(" borderColor: 'transparent', \n");
1093
sendString(" borderWidth: '1', \n");
1094
sendString(" shadow: false \n");
1095
sendString(" }, \n");
1098
sendString(" axes: {\n");
1099
sendString(" xaxis: {\n");
1100
sendString(" renderer: $.jqplot.CategoryAxisRenderer,\n");
1101
sendString(" ticks: ticks\n");
1103
sendString(" },\n");
1104
sendString(" series: series,\n");
1105
sendString(" axesDefaults: { showTickMarks: false },\n");
1106
sendString(" legend: {\n");
1107
sendString(" show: true,\n");
1108
sendString(" location: 'e',\n");
1109
sendString(" placement: 'outside'\n");
1112
sendString(" });\n");
1113
sendString("});\n");
1114
sendString("</script>\n");
1116
sendString("<div id=\"container\" align=left style=\"width: 800px; margin: 0 auto\"></div>\n");
1119
/* ************************ */
1121
void drawThroughputMeter() {
1124
sendString("<HTML>\n"
1126
"<META HTTP-EQUIV=REFRESH CONTENT=120>\n"
1127
"<META HTTP-EQUIV=Pragma CONTENT=no-cache>\n"
1128
"<META HTTP-EQUIV=Cache-Control CONTENT=no-cache>\n");
1132
sendString("</head>\n<body>\n");
1134
sendString("<script type=\"text/javascript\">\n");
1135
sendString(" $(document).ready(function() {\n");
1136
sendString(" s1 = [\n");
1137
safe_snprintf(__FILE__, __LINE__, buf, sizeof(buf), "%.1f", myGlobals.device[myGlobals.actualReportDeviceId].actualThpt); sendString(buf);
1140
sendString(" $.jqplot('netspeed',[s1],{\n");
1141
sendString(" seriesDefaults: {\n");
1142
sendString(" renderer: $.jqplot.MeterGaugeRenderer,\n");
1143
sendString(" rendererOptions: {\n");
1144
sendString(" showTickLabels: false,\n");
1145
sendString(" min: 0,\n");
1146
sendString(" max: ");
1147
safe_snprintf(__FILE__, __LINE__, buf, sizeof(buf), "%.1f,\n",
1148
myGlobals.device[myGlobals.actualReportDeviceId].peakThroughput); sendString(buf);
1149
sendString(" intervals:[");
1150
safe_snprintf(__FILE__, __LINE__, buf, sizeof(buf), "%.1f, %.1f, %.1f],\n",
1151
myGlobals.device[myGlobals.actualReportDeviceId].peakThroughput*0.33,
1152
myGlobals.device[myGlobals.actualReportDeviceId].peakThroughput*0.75,
1153
myGlobals.device[myGlobals.actualReportDeviceId].peakThroughput);
1155
sendString(" intervalColors:['#66cc66', '#E7E658', '#cc6666']\n");
1133
1158
sendString(" });\n");
1134
sendString(" });\n");
1135
sendString(" </script>\n");
1137
sendString("<div id=\"container\" style=\"width: 100%; height: 100%; margin: 0 auto\"></div>\n");
1159
sendString(" });\n");
1161
sendString("</script>\n");
1163
sendString("<div id=\"netspeed\" style=\"align: center; width: 180px; height: 120px; margin: 0 auto\"></div>\n");
1164
sendString("</body>\n</html>\n");
1140
/* ************************ */