Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Index = `
<!DOCTYPE html>
<html>
<head lang="en">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style media="screen, protection">` + bootstrap_css + `</style>
<style media="screen, protection">` + main_css + `</style>
<meta charset="UTF-8">
<script type="text/javascript"> ` + jquery_js + ` </script>
<script type="text/javascript"> ` + bootstrap_js + ` </script>
<title></title>
<script type="text/javascript">
$(document).ready(function() {
cmd = 'list';
active_obj = null;
summary = false;
writable_array = [];
var loc = window.location;
if (loc.protocol === "https:") {
new_uri = "wss:";
} else {
new_uri = "ws:";
}
new_uri += "//" + loc.host + "/api";
// for developing use
// new_uri = 'ws://127.0.0.1:9292/api'
var ws = new WebSocket(new_uri);
var cpes = new Object();
ws.onopen = function () {
console.log('connected');
var data = new Object();
data["MsgType"] = "command";
console.log(data)
data["Data"] = {command:'list'};
console.log(data)
ws.send(JSON.stringify(data))
};
ws.onclose = function () {
console.log('disconnected');
};
ws.onmessage = function (data, flags) {
var s = JSON.parse(data.data);
console.log(s)
switch(s.MsgType) {
case 'cpes':
$('.cpe-list').empty();
var li = '';
for (var x in s.Data['CPES']) {
var serial = s.Data['CPES'][x]['SerialNumber'];
cpes[serial] = new Object()
for (var attr in s.Data['CPES'][x]) {
cpes[serial][attr] = s.Data['CPES'][x][attr]
}
li += '<li><a href="#" class="cpe-id" data-id="'+serial+'">'+serial+'</a></li>';
}
$('.cpe-list').append(li);
break;
case 'GetParameterNamesResponse':
var this_obj = $( "[leaf='"+active_obj+"']" );
if (typeof (s.Data) == 'object') {
s.Data['ParameterList'].sort(function(a, b){
var nameA=a.Name.toLowerCase(), nameB=b.Name.toLowerCase()
if (nameA > nameB) //sort string ascending
return -1
if (nameA < nameB)
return 1
return 0 //default return value (no sorting)
})
}
cleanup_table();
var data = s.Data['ParameterList'];
tree_to_table(data)
break;
case "GetParameterValuesResponse":
var objs = s.Data['ParameterList'];
if (typeof (s.Data) == 'object') {
s.Data['ParameterList'].sort(function(a, b){
var nameA=a.Name.toLowerCase(), nameB=b.Name.toLowerCase()
if (nameA > nameB) //sort string ascending
return -1
if (nameA < nameB)
return 1
return 0 //default return value (no sorting)
})
}
cleanup_table();
if (summary) {
show_summary(objs);
} else {
tree_to_table(objs);
}
break;
case "log":
if (s.Data['log']!='ping')
$('.live').append(s.Data["log"]+"<br>")
break;
case "summary":
for(var i in s.Data){
console.log(i+" : "+s.Data[i])
}
case "SummaryResponse":
show_summary(s.Data)
default:
$('.live').append(s+"<br>")
}
};
$(document).on('click', ".cpe-id",function () {
$('.ul-mib').remove();
var cpe_id = $(this).attr('data-id');
$('#CPE_ID').val( cpe_id );
$('#cpeID').text(cpe_id);
var name = (cpes[cpe_id]['DataModel'] == 'TR098') ? "InternetGatewayDevice." : "Device.";
$('#cpe_summary').attr('data-model',name);
$('.parent').text(' '+name);
$('.parent').parent().attr('leaf',name);
$('#getParent').attr('leaf',name);
$('.mib').show();
$('.mib-tree').show();
$('.cpe-summary').hide().empty();
});
$(document).on('click',"#cpe_summary", function(){
summary = true;
var leaf = $(this).attr('data-model');
var data = new Object();
data["MsgType"] = "command";
data["Data"] = {
command:'GetSummary',
cpe:$('#CPE_ID').val(),
object:leaf
};
ws.send(JSON.stringify(data));
});
$(document).on('click', ".GetParameterValues", function(){
var leaf = $(this).attr('leaf');
active_obj = leaf;
var data = new Object();
data["MsgType"] = "command";
data["Data"] = {
command:'GetParameterValues',
cpe:$('#CPE_ID').val(),
object:leaf
};
ws.send(JSON.stringify(data));
});
$(document).on('click',".mib-object",function() {
var this_obj = $(this);
active_obj = this_obj.attr('leaf');
var data = new Object();
data["MsgType"] = "command";
data["Data"] = {
command:'getMib',
cpe:$('#CPE_ID').val(),
object:active_obj
};
ws.send(JSON.stringify(data));
})
});
function show_summary(data){
$('.mib-tree').hide();
summary = false;
for(var obj in data){
var tr = $(document.createElement('tr')).addClass('info');
var td_obj = $(document.createElement('td')).attr('colspan',2).html(obj);
$('.cpe-summary').append(tr.append(td_obj));
// .attr('tr-leaf',leaf).append(td_leaf).append(td_getvalue).append(td_value).append(td_writable).attr('level', next_level);
for (var leaf in data[obj]){
var tr = $(document.createElement('tr'));
var value = data[obj][leaf];
var td_leaf = $(document.createElement('td')).html(leaf);
var td_value = $(document.createElement('td')).html(value);
tr.append(td_leaf).append(td_value);
$('.cpe-summary').append(tr);
}
}
$('.cpe-summary').show();
}
function tree_to_table(data){
var actual_level = parseInt($( "[tr-leaf='"+active_obj+"']").attr('level'));
var next_level = actual_level;
for(var index in data){
var leaf = data[index]['Name'];
if (active_obj != leaf) {
next_level = actual_level+1;
}
var a = $(document.createElement('a')).addClass('mib-object').attr('leaf', leaf).text(leaf).attr('href','#');
var writable = data[index]['Writable'];
if (writable!=undefined)
writable_array[leaf] = writable;
// var value = (data[index]['Value']!=undefined) ? data[index]['Value'].substring(0, 100).replace(/\n/g,'<br>') : '';
var value = (data[index]['Value']!=undefined) ? data[index]['Value'].replace(/\n/g,'<br>').replace(/,/g,',<br>') : '';
var td_leaf = $(document.createElement('td')).append(a).addClass('td-mib').addClass('level-'+next_level);
var td_value = $(document.createElement('td')).html(value);
var td_writable = $(document.createElement('td')).text(writable_array[leaf]);
var a_getvalue = $(document.createElement('a')).text('get value').attr('href','#').addClass('GetParameterValues').attr('leaf',data[index]['Name']);
var td_getvalue = $(document.createElement('td')).append(a_getvalue);
var tr = $(document.createElement('tr')).attr('tr-leaf',leaf).append(td_leaf).append(td_getvalue).append(td_value).append(td_writable).attr('level', next_level);
if (active_obj == leaf) {
$( "[tr-leaf='"+active_obj+"']").replaceWith(tr);
} else {
$( "[tr-leaf='"+active_obj+"']").after(tr);
}
}
$('.mib-tree').show();
}
function cleanup_table(){
$('.cpe-summary').hide();
var this_tr_obj = $( "[tr-leaf='"+active_obj+"']");
var this_tr_obj_level = this_tr_obj.attr('level');
var trovato = false;
this_tr_obj.parent().find('tr').each(function(){
var _this = $(this);
var level = _this.attr('level');
if (level > this_tr_obj_level) {
_this.remove();
} else {
trovato = false;
}
if (_this.attr('tr-leaf') == active_obj) {
trovato = true;
}
});
}
</script>
</head>
<body>
<div class="container-fluida">
<input type="hidden" id="CPE_ID" value="" />
<input type="hidden" id="RPC_METHOD" value="" />
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">MosesACS</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<p class="navbar-text navbar-right" style="margin-right: 10px;">
<a href="#" id="cpe_summary">
<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
</a>
</p>
<p class="navbar-text navbar-right" id="cpeID" style="margin-right: 10px;"></p>
<ul class="nav navbar-nav">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">CPEs <span class="caret"></span></a>
<ul class="dropdown-menu cpe-list" role="menu">
<!--<li><a href="#" class="cpe-id" data-id="26701X0000569">26701X0000569</a></li>-->
<!--<li class="divider"></li>-->
</ul>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
</div>
<div class="container-fluid content">
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12">
<table class="REMOVEtable mib-tree table-condensed table-striped">
<thead>
<th style="width: 44%">leaf</th>
<th style="width: 6%"></th>
<th style="width: 44%">value</th>
<th style="width: 6%">writable</th>
</thead>
<tbody>
<tr tr-leaf="InternetGatewayDevice." level="1">
<td class="td-mib level-1">
<a href="#" class="mib-object" leaf="InternetGatewayDevice.">InternetGatewayDevice.</a>
</td>
<td>
<a href="#" class="GetParameterValues" leaf="InternetGatewayDevice.">get value</a>
</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<table class="table cpe-summary table-condensed" style="display: none;">
<tbody></tbody>
</table>
</div>
</div>
</div>
<div class="live well">
</div>
</body>
</html>
`
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.