diff options
Diffstat (limited to 'httemplate/elements')
-rw-r--r-- | httemplate/elements/broadband_snmp_get-dialog.html | 68 | ||||
-rw-r--r-- | httemplate/elements/select-mib-popup.html | 186 |
2 files changed, 68 insertions, 186 deletions
diff --git a/httemplate/elements/broadband_snmp_get-dialog.html b/httemplate/elements/broadband_snmp_get-dialog.html new file mode 100644 index 000000000..61bb9c763 --- /dev/null +++ b/httemplate/elements/broadband_snmp_get-dialog.html @@ -0,0 +1,68 @@ +<%doc> +Adds a link to display snmp statistics based on broadband_snmp_get export config. +Performs necessary checks such that, if no such exports are configured for the passed +service, returns blank space (ie may be safely invoked even if no exports are configured.) + + <& '/elements/broadband_snmp_get-dialog.html', svc => $svc &> + +</%doc> +% if (@snmp) { +<& '/elements/xmlhttp.html', + 'url' => $fsurl.'misc/xmlhttp-broadband_snmp_get.cgi', + 'subs' => [ 'broadband_snmp_get_request' ] + &> +<SCRIPT> +function broadband_snmp_get (svcnum) { + var jqd = $( '#broadband_snmp_get_dialog' ); + if (!jqd.dialog( 'isOpen' )) { + jqd.dialog( 'open' ); + } + document.getElementById('broadband_snmp_get_dialog').innerHTML = '<B>Loading...</B>'; + broadband_snmp_get_request('svcnum',svcnum, + function (result) { + var objects = JSON.parse(result) || []; + if (objects.length) { + var table = document.createElement('table'); + for (i = 0; i < objects.length; i++) { + var row = document.createElement('tr'); + var obj = objects[i]; + if (obj.error) { + var cell = document.createElement('td'); + cell.colSpan = '2'; + cell.innerHTML = obj['error']; + row.appendChild(cell); + } else { + var cell = document.createElement('td'); + cell.innerHTML = obj['label']; + row.appendChild(cell); + cell = document.createElement('td'); + cell.innerHTML = obj['value']; + row.appendChild(cell); + } + table.appendChild(row); + } + var dialog = document.getElementById('broadband_snmp_get_dialog'); + dialog.innerHTML = ''; + dialog.appendChild(table); + } // if objects.length + } // function + ); // broadband_snmp_get_request +} // broadband_snmp_get +</SCRIPT> +<SPAN ID="broadband_snmp_get_dialog"></SPAN> +<SPAN ID="broadband_snmp_get_link"> +<A HREF="javascript: void(0)" onclick="broadband_snmp_get('<% $svcnum %>')">(snmp)</A> +</SPAN> +<SCRIPT> +$( '#broadband_snmp_get_dialog' ).dialog({ + position: { my: "left top", at: "left top", of: "#broadband_snmp_get_link" }, + autoOpen: false, + title: 'SNMP', +}); +</SCRIPT> +% } #if @snmp +<%init> +my(%opt) = @_; +my @snmp = $opt{'svc'}->cust_svc->part_svc->part_export('broadband_snmp_get'); +my $svcnum = $opt{'svc'}->svcnum; +</%init> diff --git a/httemplate/elements/select-mib-popup.html b/httemplate/elements/select-mib-popup.html deleted file mode 100644 index f95ce2b97..000000000 --- a/httemplate/elements/select-mib-popup.html +++ /dev/null @@ -1,186 +0,0 @@ -<& /elements/header-popup.html &> -<DIV STYLE="visibility: hidden; position: absolute" ID="measurebox"></DIV> -<TABLE WIDTH="100%"> -<TR> - <TD WIDTH="30%" ALIGN="right">Module:</TD> - <TD><SELECT ID="select_module"></SELECT></TD> -</TR> -<TR> - <TD ALIGN="right">Object:</TD> - <TD><INPUT TYPE="text" NAME="path" ID="input_path" SIZE=50 WIDTH="100%"></TD> -</TR> -<TR> - <TD COLSPAN=2> - <SELECT STYLE="width:100%" SIZE=12 ID="select_path"></SELECT> - </TD> -</TR> -<TR> - <TH ALIGN="center" COLSPAN=2 ID="mib_objectID"></TH> -</TR> -<TR> - <TD ALIGN="right">Module: </TD><TD ID="mib_moduleID"></TD> -</TR> -<TR> - <TD ALIGN="right">Data type: </TD><TD ID="mib_type"></TD> -</TR> -<TR> - <TH COLSPAN=2> - <BUTTON ID="submit_button" onclick="submit()" DISABLED=1>Continue</BUTTON> - </TH> -</TR> -</TABLE> -<& /elements/xmlhttp.html, - url => $p.'misc/xmlhttp-mib-browse.html', - subs => [qw( search get_module_list )], -&> -<SCRIPT TYPE="text/javascript"> - -var selected_mib; - -function show_info(state) { - document.getElementById('mib_objectID').style.display = - document.getElementById('mib_moduleID').style.display = - document.getElementById('mib_type').style.display = - state ? '' : 'none'; -} - -function clear_list() { - var select_path = document.getElementById('select_path'); - select_path.options.length = 0; -} - -var measurebox = document.getElementById('measurebox'); -function add_item(value) { - var select_path = document.getElementById('select_path'); - var input_path = document.getElementById('input_path'); - var opt = document.createElement('option'); - var v = value; - if ( v.match(/-$/) ) { - opt.className = 'leaf'; - v = v.substring(0, v.length - 1); - } - var optvalue = v; // may not be the name we display - // shorten these if they don't fit in the box - if ( v.length > 30 ) { // unless they're already really short - measurebox.innerHTML = v; - while ( measurebox.clientWidth > select_path.clientWidth - 10 - && v.match(/^\..*\./) ) { - v = v.replace(/^\.[^\.]+/, ''); - measurebox.innerHTML = v; - } - if ( optvalue != v ) { - v = '...' + v; - } - } - opt.value = optvalue; - opt.text = v; - opt.selected = (input_path.value == v); - select_path.add(opt, null); -} - -var timerID = 0; - -function populate(json_result) { - var result = JSON.parse(json_result); - clear_list(); - for (var x in result['choices']) { - opt = document.createElement('option'); - add_item(result['choices'][x]); - } - if ( result['objectID'] ) { - selected_mib = result; - show_info(true); - // show details on the selected node - document.getElementById('mib_objectID').innerHTML = result.objectID; - document.getElementById('mib_moduleID').innerHTML = result.moduleID; - document.getElementById('mib_type').innerHTML = result.type; - document.getElementById('submit_button').disabled = !result.type; - } else { - selected_mib = undefined; - show_info(false); - } -} - -function populate_modules(json_result) { - var result = JSON.parse(json_result); - var select_module = document.getElementById('select_module'); - var opt = document.createElement('option'); - opt.value = 'ANY'; - opt.text = '(any)'; - select_module.add(opt, null); - for (var x in result['modules']) { - opt = document.createElement('option'); - opt.value = opt.text = result['modules'][x]; - select_module.add(opt, null); - } -} - -function dispatch_search() { - // called from the interval timer - var search_string = document.getElementById('select_module').value + ':' + - document.getElementById('input_path').value; - - search(search_string, populate); -} - -function delayed_search() { - // onkeyup handler for the text input - // 500ms after the user stops typing, send the search request - if (timerID != 0) { - clearTimeout(timerID); - } - timerID = setTimeout(dispatch_search, 500); -} - -function handle_choose_object() { - // onchange handler for the selector - // when the user picks an option, set the text input to that, and then - // search for it as though it was entered - var input_path = document.getElementById('input_path'); - input_path.value = this.value; - dispatch_search(); -} - -function handle_choose_module() { - input_path.value = ''; // just to avoid confusion - delayed_search(); -} - -function submit() { -% if ( $callback ) { - <% $callback %>; - parent.nd(1); // close popup -% } else { - alert(document.getElementById('input_path').value); -% } -} - -var input_path = document.getElementById('input_path'); -input_path.onkeyup = delayed_search; -var select_path = document.getElementById('select_path'); -select_path.onchange = handle_choose_object; -var select_module = document.getElementById('select_module'); -select_module.onchange = handle_choose_module; -% if ( $cgi->param('curr_value') ) { -input_path.value = <% $cgi->param('curr_value') |js_string %>; -% } -dispatch_search(); -get_module_list('', populate_modules); - -</SCRIPT> -<& /elements/footer.html &> -<%init> -my $callback = 'alert("(no callback defined)" + selected_mib.stringify)'; -$cgi->param('callback') =~ /^(\w+)$/; -if ( $1 ) { - # construct the JS function call expresssion - $callback = 'window.parent.' . $1 . '(selected_mib'; - foreach ($cgi->param('arg')) { - # pass-through arguments - /^(\w+)$/ or next; - $callback .= ",'$1'"; - } - $callback .= ')'; -} - -</%init> |