diff options
Diffstat (limited to 'admportal/views/ucpe')
21 files changed, 2499 insertions, 0 deletions
diff --git a/admportal/views/ucpe/altsCredentials.ejs b/admportal/views/ucpe/altsCredentials.ejs new file mode 100644 index 00000000..54ca0208 --- /dev/null +++ b/admportal/views/ucpe/altsCredentials.ejs @@ -0,0 +1,171 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#alts_credentials').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>ALTS Credentials</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + + <% if(priv == 'A'){ %> + <div class="actions" style="padding:15px 0px;"> + <button class="btn btn-primary" data-toggle="modal" data-target="#add_alts_credentials"> + Add ALTS Credentials + </button> + </div> + <% } %> + + <table id="alts_credentials" class="table table-hover table-condensed"> + <thead> + <tr> + <th>ALTS Username</th> + <th>ALTS Password</th> + <% if(priv == 'A'){ %> + <th>Action</th> + <% } %> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.alts_username %></td> + <td>*****</td> + <% if(priv == 'A') { %> + <td> + <button type="button" class="btn btn-default btn-xs" + onclick="updateAltsCredentials('<%=row.alts_username %>','<%= row.alts_password %>');">Update</button> + <button type="button" class="btn btn-default btn-xs" + onclick="deleteAltsCredentials('<%= row.alts_username %>', '<%= row.alts_password %>');">Delete</button> + </td> + <% } %> + + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<% include ../partials/alts_credentials %> +<footer> + <% include ../partials/footer %> +</footer> + +<script type="text/javascript"> +function submitAltsCredentials(form) +{ + var errorMsg=''; + var alts_username = ''; + var alts_password = ''; + var confirm_alts_password = ''; + + if ( form.name == 'addForm' ) + { + alts_username = form.nf_alts_username; + alts_password = form.nf_alts_password; + confirm_alts_password = form.nf_confirm_alts_password; + + if ( alts_password.value != confirm_alts_password.value ) + { + bootbox.alert('Passwords do not match.'); + return; + } + } + else + { + alts_username = form.uf_alts_username; + alts_password = form.uf_alts_password; + confirm_alts_password = form.uf_confirm_alts_password; + + if ( alts_password.value != confirm_alts_password.value ) + { + bootbox.alert('Passwords do not match.'); + return; + } + } + form.submit(); +} + +function updateAltsCredentials(alts_username,alts_password) { + + document.getElementById('uf_alts_username').value=alts_username; + document.getElementById('uf_alts_password').value=alts_password; + + $('#update_alts_credentials').modal('show'); +} + +function deleteAltsCredentials(alts_username, alts_password) { + + var url_string = encodeURI("/ucpe/deleteAltsCredentials?alts_username=" + alts_username + + "&alts_password=" + alts_password); + + + bootbox.confirm({ + message: "Are you sure you want to delete ALTS Credentials? " + alts_username, + callback: function(result) { + if ( result ) + { + location.assign(url_string); + } + return; + }, + buttons: { + cancel: { + label: "Cancel" + }, + confirm: { + label: "Yes" + } + } + }); +} + +</script> + +</body> +</html> + diff --git a/admportal/views/ucpe/apiLogins.ejs b/admportal/views/ucpe/apiLogins.ejs new file mode 100644 index 00000000..ddb50c8b --- /dev/null +++ b/admportal/views/ucpe/apiLogins.ejs @@ -0,0 +1,93 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#api_logins').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> + +<body> + +<div class="well well-sm"> +<h3>uCPE API Logins</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + +<!-- + <% if (priv == 'A'){ %> + <div class="actions" style="padding:15px 0px;"> + <button class="btn btn-primary" data-toggle="modal" data-target="#add_vnf_profile"> + Add VNF Profile + </button> + </div> + <% } %> +--> + + <table id="api_logins" class="table table-hover table-condensed"> + <thead> + <tr> + <th>*CUSTOMER_NAME</th> + <th>PHS_NCS_USERNAME</th> + <th>NCS_PUBLIC_SSH_KEY</th> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.customer_name %></td> + <td><%= row.phs_ncs_username %></td> + <td><%= row.ncs_public_ssh_key %></td> + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<footer> + <% include ../partials/footer %> +</footer> + + +</body> +</html> + diff --git a/admportal/views/ucpe/chainingTopologies.ejs b/admportal/views/ucpe/chainingTopologies.ejs new file mode 100644 index 00000000..2717062a --- /dev/null +++ b/admportal/views/ucpe/chainingTopologies.ejs @@ -0,0 +1,98 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#chaining_topologies').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>uCPE Chaining Topologies</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + +<!-- + <% if (priv == 'A'){ %> + <div class="actions" style="padding:15px 0px;"> + <button class="btn btn-primary" data-toggle="modal" data-target="#add_vnf_profile"> + Add VNF Profile + </button> + </div> + <% } %> +--> + + <table id="chaining_topologies" class="table table-hover table-condensed"> + <thead> + <tr> + <th>*TOPOLOGY_NAME</th> + <th>*START_VNF_TYPE</th> + <th>*SEQUENCE_NUMBER</th> + <th>START_SERVIVE_PORT_NAME</th> + <th>VNF_TYPE</th> + <th>SERVICE_PORT_NAME</th> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.topology_name %></td> + <td><%= row.start_vnf_type %></td> + <td><%= row.sequence_number %></td> + <td><%= row.start_service_port_name %></td> + <td><%= row.vnf_type %></td> + <td><%= row.service_port_name %></td> + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<footer> + <% include ../partials/footer %> +</footer> + + +</body> +</html> + diff --git a/admportal/views/ucpe/customerNcsServers.ejs b/admportal/views/ucpe/customerNcsServers.ejs new file mode 100644 index 00000000..082384a8 --- /dev/null +++ b/admportal/views/ucpe/customerNcsServers.ejs @@ -0,0 +1,102 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#ncs_servers').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>uCPE Customer NCS Servers</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + +<!-- + <% if (priv == 'A'){ %> + <div class="actions" style="padding:15px 0px;"> + <button class="btn btn-primary" data-toggle="modal" data-target="#add_vnf_profile"> + Add VNF Profile + </button> + </div> + <% } %> +--> + + <table id="ncs_servers" class="table table-hover table-condensed"> + <thead> + <tr> + <th>*CUSTOMER_NAME</th> + <th>URL</th> + <th>NCS_SM_IP_ADDRESS</th> + <th>NCS_DM_V6_IP_ADDRESS</th> + <th>NCS_DM_V6_IP_NETWORK</th> + <th>DR_NCS_DM_V6_IP_NETWORK</th> + <th>NCS_DM_V4_IP_NETWORK</th> + <th>DR_NCS_DM_V4_IP_NETWORK</th> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.customer_name %></td> + <td><%= row.url %></td> + <td><%= row.ncs_sm_ip_address %></td> + <td><%= row.ncs_dm_v6_ip_address %></td> + <td><%= row.ncs_dm_v6_ip_network %></td> + <td><%= row.dr_ncs_dm_v6_ip_network %></td> + <td><%= row.ncs_dm_v4_ip_network %></td> + <td><%= row.dr_ncs_dm_v4_ip_network %></td> + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<footer> + <% include ../partials/footer %> +</footer> + + +</body> +</html> + diff --git a/admportal/views/ucpe/mappedServicePort.ejs b/admportal/views/ucpe/mappedServicePort.ejs new file mode 100644 index 00000000..1c55eb5c --- /dev/null +++ b/admportal/views/ucpe/mappedServicePort.ejs @@ -0,0 +1,98 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#mapped_service_port').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>uCPE Mapped Service Port</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + +<!-- + <% if (priv == 'A'){ %> + <div class="actions" style="padding:15px 0px;"> + <button class="btn btn-primary" data-toggle="modal" data-target="#add_vnf_profile"> + Add VNF Profile + </button> + </div> + <% } %> +--> + + <table id="mapped_service_port" class="table table-hover table-condensed"> + <thead> + <tr> + <th>*DEVICE_VENDOR_NAME</th> + <th>*DEVICE_MODEL</th> + <th>*SERVICE_PORT_NAME</th> + <th>*VNF_VENDOR_NAME</th> + <th>*VNF_MODEL</th> + <th>*PORT_NAME</th> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.device_vendor_name %></td> + <td><%= row.device_model %></td> + <td><%= row.service_port_name %></td> + <td><%= row.vnf_vendor_name %></td> + <td><%= row.vnf_model %></td> + <td><%= row.port_name %></td> + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<footer> + <% include ../partials/footer %> +</footer> + + +</body> +</html> + diff --git a/admportal/views/ucpe/mcapServers.ejs b/admportal/views/ucpe/mcapServers.ejs new file mode 100644 index 00000000..a51abd09 --- /dev/null +++ b/admportal/views/ucpe/mcapServers.ejs @@ -0,0 +1,92 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#mcap_servers').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>uCPE MCAP Servers</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + +<!-- + <% if (priv == 'A'){ %> + <div class="actions" style="padding:15px 0px;"> + <button class="btn btn-primary" data-toggle="modal" data-target="#add_vnf_profile"> + Add VNF Profile + </button> + </div> + <% } %> +--> + + <table id="mcap_servers" class="table table-hover table-condensed"> + <thead> + <tr> + <th>*CUSTOMER_NAME</th> + <th>*MCAP_IP_ADDRESS</th> + <th>*MCAP_POLLER_IP_ADDRESS</th> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.customer_name %></td> + <td><%= row.mcap_ip_address %></td> + <td><%= row.mcap_poller_ip_address %></td> + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<footer> + <% include ../partials/footer %> +</footer> + + +</body> +</html> + diff --git a/admportal/views/ucpe/ncsCredentials.ejs b/admportal/views/ucpe/ncsCredentials.ejs new file mode 100644 index 00000000..f860b075 --- /dev/null +++ b/admportal/views/ucpe/ncsCredentials.ejs @@ -0,0 +1,180 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#ncs_server_credentials').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>NCS Server Credentials</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + + <% if(priv == 'A'){ %> + <div class="actions" style="padding:15px 0px;"> + <button class="btn btn-primary" data-toggle="modal" data-target="#add_ncs_credentials"> + Add NCS Credentials + </button> + </div> + <% } %> + + <table id="ncs_server_credentials" class="table table-hover table-condensed"> + <thead> + <tr> + <th>*Customer Name</th> + <th>NCS Username</th> + <th>NCS Password</th> + <% if(priv == 'A'){ %> + <th>Action</th> + <% } %> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.customer_name %></td> + <td><%= row.ncs_username %></td> + <td>*****</td> + <% if(priv == 'A') { %> + <td> + <button type="button" class="btn btn-default btn-xs" + onclick="updateNcsCredentials('<%= row.customer_name %>','<%= row.ncs_username %>','<%= row.ncs_password %>');">Update</button> + <button type="button" class="btn btn-default btn-xs" + onclick="deleteNcsCredentials('<%= row.customer_name %>');">Delete</button> + </td> + <% } %> + + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<% include ../partials/ncs_credentials %> +<footer> + <% include ../partials/footer %> +</footer> + +<script type="text/javascript"> +function submitNcsCredentials(form) +{ + var errorMsg=''; + var customer_name = ''; + var ncs_username = ''; + var ncs_password = ''; + var confirm_ncs_password = ''; + + if ( form.name == 'addForm' ) + { + customer_name = form.nf_customer_name; + ncs_username = form.nf_ncs_username; + ncs_password = form.nf_ncs_password; + confirm_ncs_password = form.nf_confirm_ncs_password; + + if ( (customer_name.value == null) || (customer_name.value == "") || isblank(customer_name.value) ) + { + errorMsg += 'Customer Name is required.<br>'; + } + if( errorMsg.length > 0 ) { + bootbox.alert(errorMsg); + return; + } + if ( ncs_password.value != confirm_ncs_password.value ) + { + bootbox.alert('Passwords do not match.'); + return; + } + } + else + { + customer_name = form.uf_customer_name; + ncs_username = form.uf_ncs_username; + ncs_password = form.uf_ncs_password; + confirm_ncs_password = form.uf_confirm_ncs_password; + if ( ncs_password.value != confirm_ncs_password.value ) + { + bootbox.alert('Passwords do not match.'); + return; + } + } + form.submit(); +} + +function updateNcsCredentials(customer_name,ncs_username,ncs_password) { + + document.getElementById('uf_customer_name').value=customer_name; + document.getElementById('uf_ncs_username').value=ncs_username; + document.getElementById('uf_ncs_password').value=ncs_password; + + $('#update_ncs_credentials').modal('show'); +} + +function deleteNcsCredentials(customer_name) { + + bootbox.confirm({ + message: "Are you sure you want to delete NCS Credentials [ " + customer_name + " ]", + callback: function(result) { + if ( result ) + { + location.assign("/ucpe/deleteNcsCredentials?customer_name=" + customer_name); + } + return; + }, + buttons: { + cancel: { + label: "Cancel" + }, + confirm: { + label: "Yes" + } + } + }); +} + +</script> + +</body> +</html> + diff --git a/admportal/views/ucpe/nmInterfaces.ejs b/admportal/views/ucpe/nmInterfaces.ejs new file mode 100644 index 00000000..50b15c4b --- /dev/null +++ b/admportal/views/ucpe/nmInterfaces.ejs @@ -0,0 +1,96 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#nm_interfaces').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>uCPE NM Interfaces</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + +<!-- + <% if (priv == 'A'){ %> + <div class="actions" style="padding:15px 0px;"> + <button class="btn btn-primary" data-toggle="modal" data-target="#add_vnf_profile"> + Add VNF Profile + </button> + </div> + <% } %> +--> + + <table id="nm_interfaces" class="table table-hover table-condensed"> + <thead> + <tr> + <th>*DEVICE_VENDOR_NAME</th> + <th>*DEVICE_MODEL</th> + <th>NM_VLAN_NUMBER</th> + <th>DEVICE_MANAGER_NM_LAN_INTERFACE</th> + <th>SWITCH_MANAGER_NM_LAN_INTERFACE</th> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.device_vendor_name %></td> + <td><%= row.device_model %></td> + <td><%= row.nm_lan_vlan_number %></td> + <td><%= row.device_manager_nm_lan_interface %></td> + <td><%= row.switch_manager_nm_lan_interface %></td> + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<footer> + <% include ../partials/footer %> +</footer> + + +</body> +</html> + diff --git a/admportal/views/ucpe/phsCredentials.ejs b/admportal/views/ucpe/phsCredentials.ejs new file mode 100644 index 00000000..508b5a25 --- /dev/null +++ b/admportal/views/ucpe/phsCredentials.ejs @@ -0,0 +1,202 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#phs_server_credentials').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>PHS Server Credentials</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + + <% if(priv == 'A'){ %> + <div class="actions" style="padding:15px 0px;"> + <button class="btn btn-primary" data-toggle="modal" data-target="#add_phs_credentials"> + Add PHS Credentials + </button> + </div> + <% } %> + + <table id="phs_server_credentials" class="table table-hover table-condensed"> + <thead> + <tr> + <th>*Device Vendor Name</th> + <th>*Customer Name</th> + <th>*IP Addresses</th> + <th>PHS Username</th> + <th>PHS Password</th> + <% if(priv == 'A'){ %> + <th>Action</th> + <% } %> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.device_vendor_name %></td> + <td><%= row.customer_name %></td> + <td><%= row.ip_addresses %></td> + <td><%= row.phs_username %></td> + <td>*****</td> + <% if(priv == 'A') { %> + <td> + <button type="button" class="btn btn-default btn-xs" + onclick="updatePhsCredentials('<%=row.device_vendor_name %>','<%= row.customer_name %>','<%= row.ip_addresses %>','<%= row.phs_username %>','<%= row.phs_password %>');">Update</button> + <button type="button" class="btn btn-default btn-xs" + onclick="deletePhsCredentials('<%= row.device_vendor_name %>', '<%= row.customer_name %>', '<%= row.ip_addresses %>' );">Delete</button> + </td> + <% } %> + + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<% include ../partials/phs_credentials %> +<footer> + <% include ../partials/footer %> +</footer> + +<script type="text/javascript"> +function submitPhsCredentials(form) +{ + var errorMsg=''; + var device_vendor_name = ''; + var customer_name = ''; + var ip_addresses = ''; + var phs_username = ''; + var phs_password = ''; + var confirm_phs_password = ''; + + if ( form.name == 'addForm' ) + { + device_vendor_name = form.nf_device_vendor_name; + customer_name = form.nf_customer_name; + ip_addresses = form.nf_ip_addresses; + phs_username = form.nf_phs_username; + phs_password = form.nf_phs_password; + confirm_phs_password = form.nf_confirm_phs_password; + + if ( (device_vendor_name.value == null) || (device_vendor_name.value == "") || isblank(device_vendor_name.value) ) + { + errorMsg += 'Device Vendor Name is required.<br>'; + } + if ( (customer_name.value == null) || (customer_name.value == "") || isblank(customer_name.value) ) + { + errorMsg += 'Customer Name is required.<br>'; + } + if ( (ip_addresses.value == null) || (ip_addresses.value == "") || isblank(ip_addresses.value) ){ + errorMsg += 'IP Addresses is required.<br>'; + } + if( errorMsg.length > 0 ) { + bootbox.alert(errorMsg); + return; + } + + if ( phs_password.value != confirm_phs_password.value ) + { + bootbox.alert('Passwords do not match.'); + return; + } + } + else + { + device_vendor_name = form.uf_device_vendor_name; + customer_name = form.uf_customer_name; + ip_addresses = form.uf_ip_addresses; + phs_username = form.uf_phs_username; + phs_password = form.uf_phs_password; + confirm_phs_password = form.uf_confirm_phs_password; + + if ( phs_password.value != confirm_phs_password.value ) + { + bootbox.alert('Passwords do not match.'); + return; + } + } + form.submit(); +} + +function updatePhsCredentials(device_vendor_name,customer_name,ip_addresses,phs_username,phs_password) { + + document.getElementById('uf_device_vendor_name').value=device_vendor_name; + document.getElementById('uf_customer_name').value=customer_name; + document.getElementById('uf_ip_addresses').value=ip_addresses; + document.getElementById('uf_phs_username').value=phs_username; + document.getElementById('uf_phs_password').value=phs_password; + + $('#update_phs_credentials').modal('show'); +} + +function deletePhsCredentials(device_vendor_name, customer_name, ip_addresses) { + + bootbox.confirm({ + message: "Are you sure you want to delete PHS Credentials " + device_vendor_name + "|" + customer_name + "|" + ip_addresses, + callback: function(result) { + if ( result ) + { + location.assign("/ucpe/deletePhsCredentials?device_vendor_name=" + device_vendor_name + + "&customer_name=" + customer_name + "&ip_addresses=" + ip_addresses); + } + return; + }, + buttons: { + cancel: { + label: "Cancel" + }, + confirm: { + label: "Yes" + } + } + }); +} + +</script> + +</body> +</html> + diff --git a/admportal/views/ucpe/phsServers.ejs b/admportal/views/ucpe/phsServers.ejs new file mode 100644 index 00000000..1f28dbb2 --- /dev/null +++ b/admportal/views/ucpe/phsServers.ejs @@ -0,0 +1,92 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#phs_servers').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>uCPE PHS Servers</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + +<!-- + <% if (priv == 'A'){ %> + <div class="actions" style="padding:15px 0px;"> + <button class="btn btn-primary" data-toggle="modal" data-target="#add_vnf_profile"> + Add VNF Profile + </button> + </div> + <% } %> +--> + + <table id="phs_servers" class="table table-hover table-condensed"> + <thead> + <tr> + <th>*DEVICE_VENDOR_NAME</th> + <th>*CUSTOMER_NAME</th> + <th>IP_ADDRESSES</th> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.device_vendor_name %></td> + <td><%= row.customer_name %></td> + <td><%= row.ip_addresses %></td> + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<footer> + <% include ../partials/footer %> +</footer> + + +</body> +</html> + diff --git a/admportal/views/ucpe/physicalDeviceLogins.ejs b/admportal/views/ucpe/physicalDeviceLogins.ejs new file mode 100644 index 00000000..0dd78d41 --- /dev/null +++ b/admportal/views/ucpe/physicalDeviceLogins.ejs @@ -0,0 +1,98 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#device_logins').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>uCPE Physical Device Logins</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + +<!-- + <% if (priv == 'A'){ %> + <div class="actions" style="padding:15px 0px;"> + <button class="btn btn-primary" data-toggle="modal" data-target="#add_vnf_profile"> + Add VNF Profile + </button> + </div> + <% } %> +--> + + <table id="device_logins" class="table table-hover table-condensed"> + <thead> + <tr> + <th>*CUSTOMER_NAME</th> + <th>*DEVICE_VENDOR_NAME</th> + <th>*DEVICE_MODEL</th> + <th>*DEVICE_MANAGER_HASHED_PASSWORD</th> + <th>*SWITCH_MANAGER_HASHED_PASSWORD</th> + <th>*OS_HASHED_PASSWORD</th> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.customer_name %></td> + <td><%= row.device_vendor_name %></td> + <td><%= row.device_model %></td> + <td><%= row.device_manager_hashed_password %></td> + <td><%= row.switch_manager_hashed_password %></td> + <td><%= row.os_hashed_password %></td> + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<footer> + <% include ../partials/footer %> +</footer> + + +</body> +</html> + diff --git a/admportal/views/ucpe/referenceData.ejs b/admportal/views/ucpe/referenceData.ejs new file mode 100644 index 00000000..6196c46e --- /dev/null +++ b/admportal/views/ucpe/referenceData.ejs @@ -0,0 +1,224 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#reference_data').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>uCPE Reference Data</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + + <table id="reference_data" class="table table-hover table-condensed"> + <thead> + <tr> + <th>REFERENCE_ID</th> + <th>STATUS</th> + <th>FILENAME</th> + <th>ATTUID</th> + <th>DATE</th> + <% if(priv == 'A'){ %> + <th>Action</th> + <% } %> + </tr> + </thead> + <tbody> + <% var i=0; retData.forEach( function(rowObj) { %> + <tr> + <td><%= rowObj.row.reference_id %></td> + <td><%= rowObj.row.status %></td> + <td> + <a data-toggle="collapse" + href="#collapseExample<%= i %>" aria-expanded="false" + aria-controls="collapseExample"><%= rowObj.row.filename %> + </a> + <div class="collapse" id="collapseExample<%= i %>"> + <div class="well"> + <pre><%= rowObj.filecontent %></pre> + </div> + </div> + </td> + <td><%= rowObj.row.attuid %></td> + <td><%= rowObj.row.ts %></td> + <% if(priv == 'A' ) { %> + <td> + <% if ( rowObj.row.status == 'pending' ) { %> + <button type="button" class="btn btn-default btn-xs" + onclick="importReferenceData('<%= rowObj.row.reference_id %>','<%= rowObj.row.status %>','<%= rowObj.row.filename %>','<%= rowObj.row.ts %>');">Import</button> + <% } %> + <button type="button" class="btn btn-default btn-xs" + onclick="deleteReferenceData('<%= rowObj.row.reference_id %>','<%= rowObj.row.filename %>');">Delete</button> + </td> + <% } %> + </tr> + <% i++; }); %> + </tbody> + </table> + + <% if(priv == 'A'){ %> + <div class="actions" style="padding:0px 25px;"> + <form method="POST" action="/ucpe/uploadReferenceData" enctype="multipart/form-data"> + <div class="form-group"> + <label for="dest">File input</label> + <input name="filename" type="file" id="dest"> + <p class="help-block">Choose a file to upload.</p> + </div> + <button type="button" class="btn btn-default" + onclick="uploadFile(this.form);">Upload File</button> + </form> + </div> + <% } %> +</div> + +<footer> + <% include ../partials/footer %> +</footer> + +<script type="text/javascript"> + +function getVnfData(vnf_name,vnf_type,svc_request_id) +{ + location.assign("/mobility/viewVnfData?vnf_name=" + vnf_name + "&vnf_type=" + vnf_type ); + return; +} +function importReferenceData(reference_id,status,filename,ts) +{ + var alertMessage = ''; + if ( status != 'pending' ) + { + bootbox.alert("Upload Status must be in 'pending' state."); + return; + } + if ( filename.substring(0,11) == 'ucpedevice_' ){ + alertMessage = "Are you sure you want to import file:" + filename + " and replace the UCPE_MAPPED_SERVICE_PORT and UCPE_SERVICE_PORT tables?"; + }else if ( filename.substring(0,14) == 'ucpeapilogins_' ){ + alertMessage = "Are you sure you want to import file:" + filename + " and replace the UCPE_VNF_LOGINS, UCPE_PHYSICAL_DEVICE_LOGINS and UCPE_API_LOGINS tables?"; + }else if ( filename.substring(0,17) == 'ucpenminterfaces_' ){ + alertMessage = "Are you sure you want to import file:" + filename + " and replace the UCPE_VNF_NM_INTERFACES and UCPE_NM_INTERFACES tables?"; + }else if ( filename.substring(0,15) == 'ucpephsservers_' ){ + alertMessage = "Are you sure you want to import file:" + filename + " and replace the UCPE_PHS_SERVERS table?"; + }else if ( filename.substring(0,15) == 'ucpencsservers_' ){ + alertMessage = "Are you sure you want to import file:" + filename + " and replace the UCPE_CUSTOMER_NCS_SERVERS table?"; + }else if ( filename.substring(0,15) == 'ucpevnfcatalog_' ){ + alertMessage = "Are you sure you want to import file:" + filename + " and replace the UCPE_VNF_MODELS, UCPE_VNF_MODEL_SOFTWARE and UCPE_VNF_MODEL_FEATURES tables?"; + }else if ( filename.substring(0,16) == 'ucpemcapservers_' ){ + alertMessage = "Are you sure you want to import file:" + filename + " and replace the UCPE_MCAP_SERVERS table?"; + }else if ( filename.substring(0,23) == 'ucpechainingtopologies_' ){ + alertMessage = "Are you sure you want to import file:" + filename + " and replace the UCPE_CHAINING_TOPOLOGIES table?"; + }else if ( filename.substring(0,16) == 'ucpevnfportinfo_' ){ + alertMessage = "Are you sure you want to import file:" + filename + " and replace the UCPE_VNF_PORT and UCPE_MAP_TO_DEVICE tables?"; + } else { + bootbox.alert('Invalid Filename in database: ' + filename); + return; + } + bootbox.confirm({ + message: alertMessage, + callback: function(result) { + if ( result ) + { + if ( filename.substring(0,11) == 'ucpedevice_' ){ + location.assign("/ucpe/importUcpeDevices?id=" + reference_id + "&filename=" + filename + "&status=" + status); + }else if ( filename.substring(0,14) == 'ucpeapilogins_' ){ + location.assign("/ucpe/importApiLogins?id=" + reference_id + "&filename=" + filename + "&status=" + status); + }else if ( filename.substring(0,17) == 'ucpenminterfaces_' ){ + location.assign("/ucpe/importNmInterfaces?id=" + reference_id + "&filename=" + filename + "&status=" + status); + }else if ( filename.substring(0,15) == 'ucpephsservers_' ){ + location.assign("/ucpe/importPhsServers?id=" + reference_id + "&filename=" + filename + "&status=" + status); + }else if ( filename.substring(0,15) == 'ucpencsservers_' ){ + location.assign("/ucpe/importNcsServers?id=" + reference_id + "&filename=" + filename + "&status=" + status); + }else if ( filename.substring(0,15) == 'ucpevnfcatalog_' ){ + location.assign("/ucpe/importVnfCatalog?id=" + reference_id + "&filename=" + filename + "&status=" + status); + }else if ( filename.substring(0,16) == 'ucpemcapservers_' ){ + location.assign("/ucpe/importMcapServers?id=" + reference_id + "&filename=" + filename + "&status=" + status); + }else if ( filename.substring(0,23) == 'ucpechainingtopologies_' ){ + location.assign("/ucpe/importChainTopo?id=" + reference_id + "&filename=" + filename + "&status=" + status); + }else if ( filename.substring(0,16) == 'ucpevnfportinfo_' ){ + location.assign("/ucpe/importVnfPortInfo?id=" + reference_id + "&filename=" + filename + "&status=" + status); + } else { + bootbox.alert('Invalid Filename: ' + filename); + return; + } + } + return; + }, + buttons: { + cancel: { + label: "Cancel" + }, + confirm: { + label: "Yes" + } + } + }); +} + +function deleteReferenceData(reference_id,filename) +{ + + bootbox.confirm({ + message: "Are you sure you want to delete uploaded file [" + filename + "]? (This action will not effect the database.)", + callback: function(result) { + if ( result ) + { + location.assign("/ucpe/deleteReferenceData?id=" + reference_id + "&filename=" + filename); + } + return; + }, + buttons: { + cancel: { + label: "Cancel" + }, + confirm: { + label: "Yes" + } + } + }); +} + +</script> + +</body> +</html> + diff --git a/admportal/views/ucpe/serviceManagerCredentials.ejs b/admportal/views/ucpe/serviceManagerCredentials.ejs new file mode 100644 index 00000000..9e156f2a --- /dev/null +++ b/admportal/views/ucpe/serviceManagerCredentials.ejs @@ -0,0 +1,171 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#service_manager_credentials').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>Service Manager Credentials</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + + <% if(priv == 'A'){ %> + <div class="actions" style="padding:15px 0px;"> + <button class="btn btn-primary" data-toggle="modal" data-target="#add_service_manager_credentials"> + Add Service Manager Credentials + </button> + </div> + <% } %> + + <table id="service_manager_credentials" class="table table-hover table-condensed"> + <thead> + <tr> + <th>Service Manager Username</th> + <th>Service Manager Password</th> + <% if(priv == 'A'){ %> + <th>Action</th> + <% } %> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.service_manager_username %></td> + <td>*****</td> + <% if(priv == 'A') { %> + <td> + <button type="button" class="btn btn-default btn-xs" + onclick="updateServiceManagerCredentials('<%=row.service_manager_username %>','<%= row.service_manager_password %>');">Update</button> + <button type="button" class="btn btn-default btn-xs" + onclick="deleteServiceManagerCredentials('<%= row.service_manager_username %>', '<%= row.service_manager_password %>');">Delete</button> + </td> + <% } %> + + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<% include ../partials/service_manager_credentials %> +<footer> + <% include ../partials/footer %> +</footer> + +<script type="text/javascript"> +function submitServiceManagerCredentials(form) +{ + var errorMsg=''; + var service_manager_username = ''; + var service_manager_password = ''; + var confirm_service_manager_password = ''; + + if ( form.name == 'addForm' ) + { + service_manager_username = form.nf_service_manager_username; + service_manager_password = form.nf_service_manager_password; + confirm_service_manager_password = form.nf_confirm_service_manager_password; + + if ( service_manager_password.value != confirm_service_manager_password.value ) + { + bootbox.alert('Passwords do not match.'); + return; + } + } + else + { + service_manager_username = form.uf_service_manager_username; + service_manager_password = form.uf_service_manager_password; + confirm_service_manager_password = form.uf_confirm_service_manager_password; + + if ( service_manager_password.value != confirm_service_manager_password.value ) + { + bootbox.alert('Passwords do not match.'); + return; + } + } + form.submit(); +} + +function updateServiceManagerCredentials(service_manager_username,service_manager_password) { + + document.getElementById('uf_service_manager_username').value=service_manager_username; + document.getElementById('uf_service_manager_password').value=service_manager_password; + + $('#update_service_manager_credentials').modal('show'); +} + +function deleteServiceManagerCredentials(service_manager_username, service_manager_password) { + + var url_string = encodeURI("/ucpe/deleteServiceManagerCredentials?service_manager_username=" + service_manager_username + + "&service_manager_password=" + service_manager_password); + + + bootbox.confirm({ + message: "Are you sure you want to delete Service Manager Credentials? " + service_manager_username, + callback: function(result) { + if ( result ) + { + location.assign(url_string); + } + return; + }, + buttons: { + cancel: { + label: "Cancel" + }, + confirm: { + label: "Yes" + } + } + }); +} + +</script> + +</body> +</html> + diff --git a/admportal/views/ucpe/servicePort.ejs b/admportal/views/ucpe/servicePort.ejs new file mode 100644 index 00000000..80537133 --- /dev/null +++ b/admportal/views/ucpe/servicePort.ejs @@ -0,0 +1,88 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#service_port').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>uCPE Service Port</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + + <table id="service_port" class="table table-hover table-condensed"> + <thead> + <tr> + <th>*DEVICE_VENDOR_NAME</th> + <th>*DEVICE_MODEL</th> + <th>*SERVICE_PORT_NAME</th> + <th>PHYSICAL_PORT_NAME</th> + <th>PHYSICAL_SPEED</th> + <th>PHYSICAL_SPEED_UNITS</th> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.device_vendor_name %></td> + <td><%= row.device_model %></td> + <td><%= row.service_port_name %></td> + <td><%= row.physical_port_name %></td> + <td><%= row.physical_speed %></td> + <td><%= row.physical_speed_units %></td> + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<footer> + <% include ../partials/footer %> +</footer> + + +</body> +</html> + diff --git a/admportal/views/ucpe/vnfLogins.ejs b/admportal/views/ucpe/vnfLogins.ejs new file mode 100644 index 00000000..f5e88731 --- /dev/null +++ b/admportal/views/ucpe/vnfLogins.ejs @@ -0,0 +1,94 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#vnf_logins').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>uCPE VNF Logins</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + +<!-- + <% if (priv == 'A'){ %> + <div class="actions" style="padding:15px 0px;"> + <button class="btn btn-primary" data-toggle="modal" data-target="#add_vnf_profile"> + Add VNF Profile + </button> + </div> + <% } %> +--> + + <table id="vnf_logins" class="table table-hover table-condensed"> + <thead> + <tr> + <th>*CUSTOMER_NAME</th> + <th>*VNF_VENDOR_NAME</th> + <th>*VNF_MODEL</th> + <th>HASHED_PASSWORD</th> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.customer_name %></td> + <td><%= row.vnf_vendor_name %></td> + <td><%= row.vnf_model %></td> + <td><%= row.hashed_password %></td> + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<footer> + <% include ../partials/footer %> +</footer> + + +</body> +</html> + diff --git a/admportal/views/ucpe/vnfMapDevice.ejs b/admportal/views/ucpe/vnfMapDevice.ejs new file mode 100644 index 00000000..fbfa2ba5 --- /dev/null +++ b/admportal/views/ucpe/vnfMapDevice.ejs @@ -0,0 +1,98 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#vnf_map_to_device').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>uCPE VNF Map to Device</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + +<!-- + <% if (priv == 'A'){ %> + <div class="actions" style="padding:15px 0px;"> + <button class="btn btn-primary" data-toggle="modal" data-target="#add_vnf_profile"> + Add VNF Profile + </button> + </div> + <% } %> +--> + + <table id="vnf_map_to_device" class="table table-hover table-condensed"> + <thead> + <tr> + <th>*VNF_VENDOR_NAME</th> + <th>*VNF_MODEL</th> + <th>*SERVICE_PORT_NAME</th> + <th>*DEVICE_VENDOR_NAME</th> + <th>*DEVICE_MODEL</th> + <th>*MAPPED_SERVICE_PORT_NAME</th> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.vnf_vendor_name %></td> + <td><%= row.vnf_model %></td> + <td><%= row.service_port_name %></td> + <td><%= row.device_vendor_name %></td> + <td><%= row.device_model %></td> + <td><%= row.mapped_service_port_name %></td> + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<footer> + <% include ../partials/footer %> +</footer> + + +</body> +</html> + diff --git a/admportal/views/ucpe/vnfModelFeatures.ejs b/admportal/views/ucpe/vnfModelFeatures.ejs new file mode 100644 index 00000000..40151790 --- /dev/null +++ b/admportal/views/ucpe/vnfModelFeatures.ejs @@ -0,0 +1,90 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#vnf_model_features').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>uCPE VNF Model Features</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + +<!-- + <% if (priv == 'A'){ %> + <div class="actions" style="padding:15px 0px;"> + <button class="btn btn-primary" data-toggle="modal" data-target="#add_vnf_profile"> + Add VNF Profile + </button> + </div> + <% } %> +--> + + <table id="vnf_model_features" class="table table-hover table-condensed"> + <thead> + <tr> + <th>*ATT PART NUMBER</th> + <th>*VNF_FEATURE</th> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.att_part_number %></td> + <td><%= row.vnf_feature %></td> + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<footer> + <% include ../partials/footer %> +</footer> + + +</body> +</html> + diff --git a/admportal/views/ucpe/vnfModelSoftware.ejs b/admportal/views/ucpe/vnfModelSoftware.ejs new file mode 100644 index 00000000..f82b5b8a --- /dev/null +++ b/admportal/views/ucpe/vnfModelSoftware.ejs @@ -0,0 +1,98 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#vnf_model_software').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>uCPE VNF Model Software</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + +<!-- + <% if (priv == 'A'){ %> + <div class="actions" style="padding:15px 0px;"> + <button class="btn btn-primary" data-toggle="modal" data-target="#add_vnf_profile"> + Add VNF Profile + </button> + </div> + <% } %> +--> + + <table id="vnf_model_software" class="table table-hover table-condensed"> + <thead> + <tr> + <th>*ATT PART NUMBER</th> + <th>*SOFTWARE_VERSION</th> + <th>SOFTWARE_VERSION_STATE</th> + <th>SOFTWARE_FILENAME</th> + <th>SOFTWARE_FILETYPE</th> + <th>FILE_MD5_VALUE</th> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.att_part_number %></td> + <td><%= row.software_version %></td> + <td><%= row.software_version_state %></td> + <td><%= row.software_filename %></td> + <td><%= row.software_filetype %></td> + <td><%= row.file_md5_value %></td> + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<footer> + <% include ../partials/footer %> +</footer> + + +</body> +</html> + diff --git a/admportal/views/ucpe/vnfModels.ejs b/admportal/views/ucpe/vnfModels.ejs new file mode 100644 index 00000000..df71306b --- /dev/null +++ b/admportal/views/ucpe/vnfModels.ejs @@ -0,0 +1,122 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#vnf_models').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>uCPE VNF Models</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + +<!-- + <% if (priv == 'A'){ %> + <div class="actions" style="padding:15px 0px;"> + <button class="btn btn-primary" data-toggle="modal" data-target="#add_vnf_profile"> + Add VNF Profile + </button> + </div> + <% } %> +--> + + <table id="vnf_models" class="table table-hover table-condensed"> + <thead> + <tr> + <th>*ATT PART NUMBER</th> + <th>VNF_TYPE</th> + <th>VENDOR_NAME</th> + <th>VENDOR_PART_NUMBER</th> + <th>VENDOR_MODEL</th> + <th>VCPU_DEFAULT</th> + <th>VCPU_MIN</th> + <th>VCPU_MAX</th> + <th>VMEMORY_DEFAULT</th> + <th>VMEMORY_UNITS</th> + <th>VMEMORY_MIN</th> + <th>VMEMORY_MAX</th> + <th>VDISK_DEFAULT</th> + <th>VDISK_UNITS</th> + <th>VDISK_MIN</th> + <th>VDISK_MAX</th> + <th>SPEED_UNITS</th> + <th>SPEED</th> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.att_part_number %></td> + <td><%= row.vnf_type %></td> + <td><%= row.vendor_name %></td> + <td><%= row.vendor_part_number %></td> + <td><%= row.vendor_model %></td> + <td><%= row.vcpu_default %></td> + <td><%= row.vcpu_min %></td> + <td><%= row.vcpu_max %></td> + <td><%= row.vmemory_default %></td> + <td><%= row.vmemory_units %></td> + <td><%= row.vmemory_min %></td> + <td><%= row.vmemory_max %></td> + <td><%= row.vdisk_default %></td> + <td><%= row.vdisk_units %></td> + <td><%= row.vdisk_min %></td> + <td><%= row.vdisk_max %></td> + <td><%= row.speed_units %></td> + <td><%= row.speed %></td> + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<footer> + <% include ../partials/footer %> +</footer> + + +</body> +</html> + diff --git a/admportal/views/ucpe/vnfNmInterfaces.ejs b/admportal/views/ucpe/vnfNmInterfaces.ejs new file mode 100644 index 00000000..3430f6b0 --- /dev/null +++ b/admportal/views/ucpe/vnfNmInterfaces.ejs @@ -0,0 +1,98 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#vnf_nm_interfaces').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>uCPE VNF NM Interfaces</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + +<!-- + <% if (priv == 'A'){ %> + <div class="actions" style="padding:15px 0px;"> + <button class="btn btn-primary" data-toggle="modal" data-target="#add_vnf_profile"> + Add VNF Profile + </button> + </div> + <% } %> +--> + + <table id="vnf_nm_interfaces" class="table table-hover table-condensed"> + <thead> + <tr> + <th>*DEVICE_VENDOR_NAME</th> + <th>*DEVICE_MODEL</th> + <th>*VNF_VENDOR_NAME</th> + <th>*VNF_MODEL</th> + <th>NM_LAN_INTERFACE</th> + <th>NM_LOOPBACK_INTERFACE</th> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.device_vendor_name %></td> + <td><%= row.device_model %></td> + <td><%= row.vnf_vendor_name %></td> + <td><%= row.vnf_model %></td> + <td><%= row.nm_lan_interface %></td> + <td><%= row.nm_loopback_interface %></td> + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<footer> + <% include ../partials/footer %> +</footer> + + +</body> +</html> + diff --git a/admportal/views/ucpe/vnfPorts.ejs b/admportal/views/ucpe/vnfPorts.ejs new file mode 100644 index 00000000..834eada9 --- /dev/null +++ b/admportal/views/ucpe/vnfPorts.ejs @@ -0,0 +1,94 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <% include ../partials/head %> + <% include ../partials/header %> + <script type="text/javascript" src="/javascripts/admportal.js" async></script> + <title>SDN-C AdminPortal</title> +<script class="init"> + $(document).ready(function() { + $('#vnf_ports').DataTable( { + "order": [[ 0, "asc" ]] + } ); +} ); +</script> + +</head> +<body> + +<div class="well well-sm"> +<h3>uCPE VNF Ports</h3> +</div> + +<% if ( typeof result != 'undefined' ) { + if (result.code.length > 0) { + if ( result.code == 'success' ) { %> + <div class='alert alert-success' role='alert'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } else { %> + <div class='alert alert-danger' role='danger'> + <% + for ( x in result.msg ){ %> + <div><%= result.msg[x] %></div> + <% } %> + </div> + <% } %> + <% } %> +<% } %> + +<% if( typeof privilege != 'undefined'){ + var priv = privilege.privilege; +} else { + var priv = 'A'; +} %> + + +<div class="container-fluid"> + +<!-- + <% if (priv == 'A'){ %> + <div class="actions" style="padding:15px 0px;"> + <button class="btn btn-primary" data-toggle="modal" data-target="#add_vnf_profile"> + Add VNF Profile + </button> + </div> + <% } %> +--> + + <table id="vnf_ports" class="table table-hover table-condensed"> + <thead> + <tr> + <th>*VNF_VENDOR_NAME</th> + <th>*VNF_MODEL</th> + <th>*SERVICE_PORT_NAME</th> + <th>PHYSICAL_PORT_NAME</th> + </tr> + </thead> + <tbody> + <% rows.forEach( function(row) { %> + <tr> + <td><%= row.vnf_vendor_name %></td> + <td><%= row.vnf_model %></td> + <td><%= row.service_port_name %></td> + <td><%= row.physical_port_name %></td> + </tr> + <% }); %> + </tbody> + </table> + +</div> + +<footer> + <% include ../partials/footer %> +</footer> + + +</body> +</html> + |