www

package
v0.0.0-...-5670ded Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 8, 2016 License: MIT Imports: 0 Imported by: 0

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL