aboutsummaryrefslogtreecommitdiffstats
path: root/admportal/views/tunnel
diff options
context:
space:
mode:
Diffstat (limited to 'admportal/views/tunnel')
-rw-r--r--admportal/views/tunnel/linkLatencyMaster.ejs240
-rw-r--r--admportal/views/tunnel/linkMaster.ejs213
-rw-r--r--admportal/views/tunnel/metroRoadmServiceRequest.ejs300
-rw-r--r--admportal/views/tunnel/owbcProperties.ejs223
-rw-r--r--admportal/views/tunnel/partnerProperties.ejs184
-rw-r--r--admportal/views/tunnel/roadmMapping.ejs230
-rw-r--r--admportal/views/tunnel/routerMaster.ejs167
7 files changed, 1557 insertions, 0 deletions
diff --git a/admportal/views/tunnel/linkLatencyMaster.ejs b/admportal/views/tunnel/linkLatencyMaster.ejs
new file mode 100644
index 00000000..c09adc4e
--- /dev/null
+++ b/admportal/views/tunnel/linkLatencyMaster.ejs
@@ -0,0 +1,240 @@
+<!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>SDNC-MLC AdminPortal</title>
+
+
+<script class="init">
+ $(document).ready(function() {
+ $('#linkLatencyMaster').DataTable( {
+ "order": [[ 0, "asc" ]]
+ } );
+} );
+</script>
+</head>
+
+<body>
+
+<div class="well well-sm">
+<h3>Link Latency Master</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 btn-md" data-toggle="modal" data-target="#add_link_latency_master">Add Link Latency</button>
+ </div>
+ <% } %>
+
+ <table id="linkLatencyMaster" class="table table-hover table-condensed">
+ <thead>
+ <tr>
+ <th>*Src CRS Name</th>
+ <th>*Dest CRS Name</th>
+ <th>*Bundle Name</th>
+ <th>*Latency</th>
+ <th>*Intra Inter SNRC</th>
+ <th>*Final Latency</th>
+ <th>*Augmentable</th>
+ <% if(priv == 'A'){ %>
+ <th>Action</th>
+ <% } %>
+ </tr>
+ </thead>
+ <tbody>
+ <% rows.forEach( function(row) { %>
+ <tr>
+ <td><%= row.source_crs_name %></td>
+ <td><%= row.destination_crs_name %></td>
+ <td><%= row.bundle_name %></td>
+ <td><%= row.latency %></td>
+ <td><%= row.intra_inter_snrc %></td>
+ <td><%= row.final_latency %></td>
+ <td><%= row.augmentable %></td>
+ <% if(priv == 'A') { %>
+ <td>
+ <button type="button" class="btn btn-default btn-xs" onclick="updateLinkLatencyMaster('<%= row.source_crs_name %>', '<%= row.destination_crs_name %>', '<%= row.bundle_name %>', '<%= row.latency %>', '<%= row.intra_inter_snrc %>', '<%= row.final_latency %>', '<%= row.augmentable %>');">Update</button>
+ <button type="button" class="btn btn-default btn-xs" onclick="deleteLinkLatencyMaster('<%= row.source_crs_name %>','<%= row.destination_crs_name %>','<%= row.bundle_name %>');">Delete</button>
+ </td>
+ <% } %>
+ </tr>
+ <% }); %>
+ </tbody>
+ </table>
+
+ <% if(priv == 'A'){ %>
+ <div class="actions" style="padding:0px 25px;">
+ <form method="POST" action="/tunnel/uploadLinkLatencyMaster" 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>
+
+<% include ../partials/link_latency_master %>
+<footer>
+ <% include ../partials/footer %>
+</footer>
+
+<script type="text/javascript">
+function submitLinkLatencyMaster(form)
+{
+ var errorMsg='';
+ var source_crs_name = '';
+ var destination_crs_name = '';
+ var bundle_name = '';
+ var latency = '';
+ var intra_inter_snrc = '';
+ var final_latency = '';
+ var augmentable = '';
+
+ if ( form.name == 'addForm' )
+ {
+ source_crs_name = form.nf_source_crs_name;
+ destination_crs_name = form.nf_destination_crs_name;
+ bundle_name = form.nf_bundle_name;
+ latency = form.nf_latency;
+ intra_inter_snrc = form.nf_intra_inter_snrc;
+ final_latency = form.nf_final_latency;
+ augmentable = form.nf_augmentable;
+ }
+ else
+ {
+ source_crs_name = form.uf_source_crs_name;
+ destination_crs_name = form.uf_destination_crs_name;
+ bundle_name = form.uf_bundle_name;
+ latency = form.uf_latency;
+ intra_inter_snrc = form.uf_intra_inter_snrc;
+ final_latency = form.uf_final_latency;
+ augmentable = form.uf_augmentable;
+ }
+
+ if ( (source_crs_name.value == null) || (source_crs_name.value == "") || isblank(source_crs_name.value) )
+ {
+ errorMsg += 'Source CRS Name is required.<br>';
+ }
+ if ( (destination_crs_name.value == null) || (destination_crs_name.value == "") || isblank(destination_crs_name.value) )
+ {
+ errorMsg += 'Destination CRS Name is required.<br>';
+ }
+ if ( (bundle_name.value == null) || (bundle_name.value == "") || isblank(bundle_name.value) )
+ {
+ errorMsg += 'Bundle Name is required.<br>';
+ }
+ if ( (latency.value == null) || (latency.value == "") || isblank(latency.value) )
+ {
+ errorMsg += 'Latency is required.<br>';
+ }
+ if ( (intra_inter_snrc.value == null) || (intra_inter_snrc.value == "") || isblank(intra_inter_snrc.value) )
+ {
+ errorMsg += 'Intra Inter SNRC is required.<br>';
+ }
+ if ( (final_latency.value == null) || (final_latency.value == "") || isblank(final_latency.value) )
+ {
+ errorMsg += 'Final Latency is required.<br>';
+ }
+ if ( (augmentable.value == null) || (augmentable.value == "") || isblank(augmentable.value) )
+ {
+ errorMsg += 'Augmentable is required.<br>';
+ }
+ if( errorMsg.length > 0 ) {
+ bootbox.alert(errorMsg);
+ return;
+ }
+
+ if (augmentable.value != 'Y' && augmentable.value != 'N'){
+ bootbox.alert('Augmentable must be Y or N');
+ return;
+ }
+
+ form.submit();
+}
+
+function updateLinkLatencyMaster(source_crs_name,destination_crs_name,bundle_name,latency,intra_inter_snrc,final_latency,augmentable) {
+
+ document.getElementById('uf_source_crs_name').value=source_crs_name;
+ document.getElementById('uf_destination_crs_name').value=destination_crs_name;
+ document.getElementById('uf_bundle_name').value=bundle_name;
+ document.getElementById('uf_latency').value=latency;
+ document.getElementById('uf_intra_inter_snrc').value=intra_inter_snrc;
+ document.getElementById('uf_final_latency').value=final_latency;
+ document.getElementById('uf_augmentable').value=augmentable;
+
+ document.getElementById('uf_key_source_crs_name').value=source_crs_name;
+ document.getElementById('uf_key_destination_crs_name').value=destination_crs_name;
+ document.getElementById('uf_key_bundle_name').value=bundle_name;
+
+ $('#update_link_latency_master').modal('show');
+}
+
+function deleteLinkLatencyMaster(source_crs_name,destination_crs_name,bundle_name) {
+
+ var url_string = encodeURI("/tunnel/deleteLinkLatencyMaster?source_crs_name=" + source_crs_name
+ + "&destination_crs_name=" + destination_crs_name
+ + "&bundle_name=" + bundle_name);
+
+ bootbox.confirm({
+ message: "Are you sure you want to delete this Link Latency entry? [" + source_crs_name + ":" + destination_crs_name + ":" + bundle_name + "]",
+ 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/tunnel/linkMaster.ejs b/admportal/views/tunnel/linkMaster.ejs
new file mode 100644
index 00000000..160bb7e6
--- /dev/null
+++ b/admportal/views/tunnel/linkMaster.ejs
@@ -0,0 +1,213 @@
+<!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>SDNC-MLC AdminPortal</title>
+
+
+<script class="init">
+ $(document).ready(function() {
+ $('#linkMaster').DataTable( {
+ "order": [[ 0, "asc" ]]
+ } );
+} );
+</script>
+</head>
+
+<body>
+
+<div class="well well-sm">
+<h3>Link Master</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 btn-md" data-toggle="modal" data-target="#add_link_master">Add Link</button>
+ </div>
+ <% } %>
+
+ <table id="linkMaster" class="table table-hover table-condensed">
+ <thead>
+ <tr>
+ <th>*Link Interface IP</th>
+ <th>Source CRS Name</th>
+ <th>Destination CRS Name</th>
+ <th>Max Reserved BW</th>
+ <th>Default Cost</th>
+ <th>Bundle Name</th>
+ <th>Shutdown</th>
+ <% if(priv == 'A'){ %>
+ <th>Action</th>
+ <% } %>
+ </tr>
+ </thead>
+ <tbody>
+ <% rows.forEach( function(row) { %>
+ <tr>
+ <td><%= row.link_interface_ip %></td>
+ <td><%= row.source_crs_name %></td>
+ <td><%= row.destination_crs_name %></td>
+ <td><%= row.link_speed %></td>
+ <td><%= row.default_cost %></td>
+ <td><%= row.bundle_name %></td>
+ <td><%= row.shutdown %></td>
+ <% if(priv == 'A') { %>
+ <td>
+ <button type="button" class="btn btn-default btn-xs" onclick="updateLinkMaster('<%= row.link_interface_ip %>',
+ '<%= row.source_crs_name %>', '<%= row.destination_crs_name %>', '<%= row.link_speed %>', '<%= row.default_cost %>',
+ '<%= row.bundle_name %>', '<%= row.shutdown %>');">Update</button>
+ <button type="button" class="btn btn-default btn-xs" onclick="deleteLinkMaster('<%= row.link_interface_ip %>');">Delete</button>
+ </td>
+ <% } %>
+ </tr>
+ <% }); %>
+ </tbody>
+ </table>
+</div>
+
+<% include ../partials/link_master %>
+<footer>
+ <% include ../partials/footer %>
+</footer>
+
+<script type="text/javascript">
+function saveLinkMaster(form)
+{
+ var errorMsg='';
+ var link_interface_ip = '';
+ var source_crs_name = '';
+ var destination_crs_name = '';
+ var link_speed = '';
+ var default_cost = '';
+ var bundle_name = '';
+ var shutdown = '';
+
+ if ( form.name == 'addForm' )
+ {
+ link_interface_ip = form.nf_link_interface_ip;
+ source_crs_name = form.nf_source_crs_name;
+ destination_crs_name = form.nf_destination_crs_name;
+ link_speed = form.nf_link_speed;
+ default_cost = form.nf_default_cost;
+ bundle_name = form.nf_bundle_name;
+ shutdown = form.nf_shutdown;
+ }
+ else
+ {
+ link_interface_ip = form.uf_link_interface_ip;
+ source_crs_name = form.uf_source_crs_name;
+ destination_crs_name = form.uf_destination_crs_name;
+ link_speed = form.uf_link_speed;
+ default_cost = form.uf_default_cost;
+ bundle_name = form.uf_bundle_name;
+ shutdown = form.uf_shutdown;
+ }
+
+
+ if ( (link_interface_ip.value == null) || (link_interface_ip.value == "") || isblank(link_interface_ip.value) )
+ {
+ errorMsg += 'Link Interface IP is required.<br>';
+ }
+ if ( (source_crs_name.value == null) || (source_crs_name.value == "") || isblank(source_crs_name.value) )
+ {
+ errorMsg += 'Source CRS Name is required.<br>';
+ }
+ if ( (destination_crs_name.value == null) || (destination_crs_name.value == "") || isblank(destination_crs_name.value) )
+ {
+ errorMsg += 'Destination CRS Name is required.<br>';
+ }
+ if( errorMsg.length > 0 ) {
+ bootbox.alert(errorMsg);
+ return;
+ }
+
+ if ( link_speed.value.length >0 && !isDigit(link_speed.value) )
+ {
+ bootbox.alert('Max Reserved BW must be a number.');
+ return;
+ }
+ if ( default_cost.value.length >0 && !isDigit(default_cost.value) )
+ {
+ bootbox.alert('Default Cost must be a number.');
+ return;
+ }
+ form.submit();
+}
+
+function updateLinkMaster(link_interface_ip,source_crs_name,destination_crs_name,link_speed,default_cost,bundle_name,shutdown) {
+
+ document.getElementById('uf_link_interface_ip').value=link_interface_ip;
+ document.getElementById('uf_source_crs_name').value=source_crs_name;
+ document.getElementById('uf_destination_crs_name').value=destination_crs_name;
+ document.getElementById('uf_link_speed').value=link_speed;
+ document.getElementById('uf_default_cost').value=default_cost;
+ document.getElementById('uf_bundle_name').value=bundle_name;
+ document.getElementById('uf_shutdown').value=shutdown;
+ document.getElementById('uf_key_link_interface_ip').value=link_interface_ip;
+
+ $('#update_link_master').modal('show');
+}
+
+function deleteLinkMaster(link_interface_ip) {
+
+ var url_string = encodeURI("/tunnel/deleteLinkMaster?link_interface_ip=" + link_interface_ip);
+
+ bootbox.confirm({
+ message: "Are you sure you want to delete this Link [" + link_interface_ip + "]",
+ 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/tunnel/metroRoadmServiceRequest.ejs b/admportal/views/tunnel/metroRoadmServiceRequest.ejs
new file mode 100644
index 00000000..efc81afe
--- /dev/null
+++ b/admportal/views/tunnel/metroRoadmServiceRequest.ejs
@@ -0,0 +1,300 @@
+<!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() {
+ $('#metroRoadmServiceRequest').DataTable( {
+ "order": [[ 0, "asc" ]]
+ } );
+} );
+</script>
+
+</head>
+<body>
+
+<div class="well well-sm">
+<h3>Metro ROADM Service Request</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_metroroadm_service_request">
+ Add Metro ROADM Serice Request
+ </button>
+ </div>
+ <% } %>
+ -->
+
+ <table id="metroRoadmServiceRequest" class="table table-hover table-condensed">
+ <thead>
+ <tr>
+ <th>ReqId</th>
+ <th>ReqSource</th>
+ <th>NotificationURL</th>
+ <th>Action</th>
+ <th>ReqTimestamp</th>
+ <th>UpdateTimestamp</th>
+ <th>ReqStatus</th>
+ <th>ProcStatus</th>
+ <th>ReasonCode</th>
+ <th>ReasonMsg</th>
+ <th>ServiceId</th>
+ <th>CommonId</th>
+ <th>Clli_A</th>
+ <th>Clli_Z</th>
+ <th>Customer</th>
+ <th>ControllerId</th>
+ <% if(priv == 'A'){ %>
+ <th>Action</th>
+ <% } %>
+ </tr>
+ </thead>
+ <tbody>
+ <% rows.forEach( function(row) { %>
+ <tr>
+ <td><%= row.request_id %></td>
+ <td><%= row.request_source %></td>
+ <td><%= row.notification_url %></td>
+ <td><%= row.action %></td>
+ <td><%= row.request_timestamp %></td>
+ <td><%= row.update_timestamp %></td>
+ <td><%= row.request_status %></td>
+ <td><%= row.processing_status %></td>
+ <td><%= row.reason_code %></td>
+ <td><%= row.reason_message %></td>
+ <td><%= row.service_id %></td>
+ <td><%= row.common_id %></td>
+ <td><%= row.clli_a %></td>
+ <td><%= row.clli_z %></td>
+ <td><%= row.customer %></td>
+ <td><%= row.controller_id %></td>
+ <% if(priv == 'A') { %>
+ <td>
+ <button type="button" class="btn btn-default btn-xs"
+ onclick="updateMetroRoadmServiceRequest('<%=row.request_id %>','<%= row.request_source %>',
+ '<%=row.notification_url %>','<%= row.action %>','<%= row.request_timestamp %>',
+ '<%= row.update_timestamp %>','<%= row.request_status %>', '<%= row.processing_status %>',
+ '<%= row.reason_code %>', '<%= row.reason_message %>','<%= row.service_id %>',
+ '<%= row.common_id %>','<%= row.clli_a %>', '<%= row.clli_z %>','<%= row.customer %>',
+ '<%= row.controller_id %>');">Update</button>
+ <button type="button" class="btn btn-default btn-xs"
+ onclick="deleteMetroRoadmServiceRequest('<%= row.request_id %>');">Delete</button>
+ </td>
+ <% } %>
+ </tr>
+ <% }); %>
+ </tbody>
+ </table>
+</div>
+
+<% include ../partials/metroroadm_service_request %>
+<footer>
+ <% include ../partials/footer %>
+</footer>
+
+<script type="text/javascript">
+function submitMetroRoadmServiceRequest(form)
+{
+ var errorMsg='';
+ var request_id='';
+ var request_source = '';
+ var notification_url = '';
+ var action = '';
+ var request_timestamp = '';
+ var update_timestamp = '';
+ var request_status = '';
+ var processing_status = '';
+ var reason_code = '';
+ var reason_message = '';
+ var service_id = '';
+ var common_id = '';
+ var clli_a = '';
+ var clli_z = '';
+ var customer = '';
+ var controller_id = '';
+
+ if ( form.name == 'addForm' )
+ {
+ request_id = form.nf_request_id;
+ request_source = form.nf_request_source;
+ notification_url = form.nf_notification_url;
+ action = form.nf_l_action;
+ request_timestamp = form.nf_request_timestamp;
+ update_timestamp = form.nf_update_timestamp;
+ request_status = form.nf_request_status;
+ processing_status = form.nf_processing_status;
+ reason_code = form.nf_reason_code;
+ reason_message = form.nf_reason_message;
+ service_id = form.nf_service_id;
+ common_id = form.nf_common_id;
+ clli_a = form.nf_clli_a;
+ clli_z = form.nf_clli_z;
+ customer = form.nf_customer;
+ controller_id = form.nf_controller_id;
+ }
+ else
+ {
+ request_id = form.uf_request_id;
+ request_source = form.uf_request_source;
+ notification_url = form.uf_notification_url;
+ action = form.uf_l_action;
+ request_timestamp = form.uf_request_timestamp;
+ update_timestamp = form.uf_update_timestamp;
+ request_status = form.uf_request_status;
+ processing_status = form.uf_processing_status;
+ reason_code = form.uf_reason_code;
+ reason_message = form.uf_reason_message;
+ service_id = form.uf_service_id;
+ common_id = form.uf_common_id;
+ clli_a = form.uf_clli_a;
+ clli_z = form.uf_clli_z;
+ customer = form.uf_customer;
+ controller_id = form.uf_controller_id;
+ }
+ if ( (request_id.value == null) || (request_id.value == "") || isblank(request_id.value) )
+ {
+ errorMsg += 'Request Id is required.\n';
+ }
+ if ( (action.value == null) || (action.value == "") || isblank(action.value) )
+ {
+ errorMsg += 'Action is required.\n';
+ }
+ if ( (request_timestamp.value == null) || (request_timestamp.value == "") || isblank(request_timestamp.value) )
+ {
+ errorMsg += 'Request Timestamp is required.\n';
+ }
+ if ( (request_status.value == null) || (request_status.value == "") || isblank(request_status.value) )
+ {
+ errorMsg += 'Request Status is required.\n';
+ }
+ if ( (processing_status.value == null) || (processing_status.value == "") || isblank(processing_status.value) )
+ {
+ errorMsg += 'Processing Status is required.\n';
+ }
+ if ( (service_id.value == null) || (service_id.value == "") || isblank(service_id.value) )
+ {
+ errorMsg += 'Service Id is required.\n';
+ }
+ if ( (controller_id.value == null) || (controller_id.value == "") || isblank(controller_id.value) )
+ {
+ errorMsg += 'Controller Id is required.\n';
+ }
+ if( errorMsg.length > 0 ) {
+ alert(errorMsg);
+ return;
+ }
+
+ // edit request_timestamp, update_timestamp
+ if (!isValid(request_timestamp.value)){
+ alert('Request Timestamp must be in format YYYY-MM-DD HH:MM:SS');
+ return;
+ }
+ if ( update_timestamp.length > 0 )
+ {
+ if (!isValid(update_timestamp.value)){
+ alert('Update Timestamp must be in format YYYY-MM-DD HH:MM:SS');
+ return;
+ }
+ }
+ form.submit();
+}
+
+function isValid(dateString) {
+ if (dateString == '0000-00-00 00:00:00'){
+ return(true);
+ }
+ var minDate = new Date('1970-01-01 00:00:01');
+ var maxDate = new Date('2038-01-19 03:14:07');
+ var date = new Date(dateString);
+ return date > minDate && date < maxDate;
+}
+
+function updateMetroRoadmServiceRequest(request_id,request_source,notification_url,action,request_timestamp,update_timestamp,
+ request_status,processing_status,reason_code,reason_message,service_id,common_id,clli_a,clli_z,customer,controller_id) {
+
+ document.getElementById('uf_request_id').value=request_id;
+ document.getElementById('uf_key_request_id').value=request_id;
+ document.getElementById('uf_request_source').value=request_source;
+ document.getElementById('uf_notification_url').value=notification_url;
+ document.getElementById('uf_l_action').value=action;
+ document.getElementById('uf_request_timestamp').value=request_timestamp;
+ document.getElementById('uf_update_timestamp').value=update_timestamp;
+ document.getElementById('uf_request_status').value=request_status;
+ document.getElementById('uf_processing_status').value=processing_status;
+ document.getElementById('uf_reason_code').value=reason_code;
+ document.getElementById('uf_reason_message').value=reason_message;
+ document.getElementById('uf_service_id').value=service_id;
+ document.getElementById('uf_common_id').value=common_id;
+ document.getElementById('uf_clli_a').value=clli_a;
+ document.getElementById('uf_clli_z').value=clli_z;
+ document.getElementById('uf_customer').value=customer;
+ document.getElementById('uf_controller_id').value=controller_id;
+
+ $('#update_metroroadm_service_request').modal('show');
+}
+
+function deleteMetroRoadmServiceRequest(request_id) {
+
+ var url_string = encodeURI("/tunnel/deleteMetroRoadmServiceRequest?request_id=" + request_id );
+
+ bootbox.confirm({
+ message: "Are you sure you want to delete Metro ROADM Service Request? " + request_id,
+ 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/tunnel/owbcProperties.ejs b/admportal/views/tunnel/owbcProperties.ejs
new file mode 100644
index 00000000..37b02fea
--- /dev/null
+++ b/admportal/views/tunnel/owbcProperties.ejs
@@ -0,0 +1,223 @@
+<!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() {
+ $('#owbc_properties').DataTable( {
+ "order": [[ 0, "asc" ]]
+ } );
+} );
+</script>
+
+</head>
+<body>
+
+<div class="well well-sm">
+<h3>OWBC Properties</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_owbc_properties">
+ Add OWBC Properties
+ </button>
+ </div>
+ <% } %>
+
+ <table id="owbc_properties" class="table table-hover table-condensed">
+ <thead>
+ <tr>
+ <th>Controller ID</th>
+ <th>Base URL</th>
+ <th>Service Create Extension</th>
+ <th>Service Delete Extension</th>
+ <th>Auth Username</th>
+ <th>Auth Password</th>
+ <% if(priv == 'A'){ %>
+ <th>Action</th>
+ <% } %>
+ </tr>
+ </thead>
+ <tbody>
+ <% rows.forEach( function(row) { %>
+ <tr>
+ <td><%= row.controller_id %></td>
+ <td><%= row.base_uri %></td>
+ <td><%= row.service_create_extension %></td>
+ <td><%= row.service_delete_extension %></td>
+ <td><%= row.auth_username %></td>
+ <td>*****</td>
+ <% if(priv == 'A') { %>
+ <td>
+ <button type="button" class="btn btn-default btn-xs"
+ onclick="updateOwbcProperties('<%=row.controller_id %>','<%= row.base_uri %>','<%= row.service_create_extension %>','<%= row.service_delete_extension %>','<%= row.auth_username %>','<%= row.auth_password %>');">Update</button>
+ <button type="button" class="btn btn-default btn-xs"
+ onclick="deleteOwbcProperties('<%= row.controller_id %>');">Delete</button>
+ </td>
+ <% } %>
+
+ </tr>
+ <% }); %>
+ </tbody>
+ </table>
+
+</div>
+
+<% include ../partials/owbc_properties %>
+<footer>
+ <% include ../partials/footer %>
+</footer>
+
+<script type="text/javascript">
+function submitOwbcProperties(form)
+{
+ var errorMsg='';
+ var controller_id = '';
+ var base_uri = '';
+ var service_create_extension = '';
+ var service_delete_extension = '';
+ var auth_username = '';
+ var auth_password = '';
+ var confirm_auth_password = '';
+
+ if ( form.name == 'addForm' )
+ {
+ controller_id = form.nf_controller_id;
+ base_uri = form.nf_base_uri;
+ service_create_extension = form.nf_service_create_extension;
+ service_delete_extension = form.nf_service_delete_extension;
+ auth_username = form.nf_auth_username;
+ auth_password = form.nf_auth_password;
+ confirm_auth_password = form.nf_confirm_auth_password;
+
+ if ( auth_password.value != confirm_auth_password.value )
+ {
+ bootbox.alert('Passwords do not match.');
+ return;
+ }
+ }
+ else
+ {
+ controller_id = form.uf_controller_id;
+ base_uri = form.uf_base_uri;
+ service_create_extension = form.uf_service_create_extension;
+ service_delete_extension = form.uf_service_delete_extension;
+ auth_username = form.uf_auth_username;
+ auth_password = form.uf_auth_password;
+ confirm_auth_password = form.uf_confirm_auth_password;
+
+ if ( auth_password.value != confirm_auth_password.value )
+ {
+ bootbox.alert('Passwords do not match.');
+ return;
+ }
+ }
+ if ( (controller_id.value == null) || (controller_id.value == "") || isblank(controller_id.value) )
+ {
+ errorMsg += 'Controller Id is required.<br>';
+ }
+ if ( (base_uri.value == null) || (base_uri.value == "") || isblank(base_uri.value) )
+ {
+ errorMsg += 'Base URL is required.<br>';
+ }
+ if ( (service_create_extension.value == null) || (service_create_extension.value == "") || isblank(service_create_extension.value) )
+ {
+ errorMsg += 'Service Create Extension is required.<br>';
+ }
+ if ( (service_delete_extension.value == null) || (service_delete_extension.value == "") || isblank(service_delete_extension.value) )
+ {
+ errorMsg += 'Service Delete Extension is required.<br>';
+ }
+ if ( (auth_username.value == null) || (auth_username.value == "") || isblank(auth_username.value) )
+ {
+ errorMsg += 'Auth Username is required.<br>';
+ }
+ if ( (auth_password.value == null) || (auth_password.value == "") || isblank(auth_password.value) )
+ {
+ errorMsg += 'Auth Password is required.<br>';
+ }
+ if( errorMsg.length > 0 ) {
+ bootbox.alert(errorMsg);
+ return;
+ }
+ form.submit();
+}
+
+function updateOwbcProperties(controller_id,base_uri,service_create_extension,service_delete_extension,auth_username,auth_password) {
+
+ document.getElementById('uf_controller_id').value=controller_id;
+ document.getElementById('uf_key_controller_id').value=controller_id;
+ document.getElementById('uf_base_uri').value=base_uri;
+ document.getElementById('uf_service_create_extension').value=service_create_extension;
+ document.getElementById('uf_service_delete_extension').value=service_delete_extension;
+ document.getElementById('uf_auth_username').value=auth_username;
+ document.getElementById('uf_auth_password').value=auth_password;
+ document.getElementById('uf_confirm_auth_password').value=auth_password;
+
+ $('#update_owbc_properties').modal('show');
+}
+
+function deleteOwbcProperties(controller_id) {
+
+ var url_string = encodeURI("/tunnel/deleteOwbcProperties?controller_id=" + controller_id );
+
+ bootbox.confirm({
+ message: "Are you sure you want to delete OWBC Properties? " + controller_id,
+ 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/tunnel/partnerProperties.ejs b/admportal/views/tunnel/partnerProperties.ejs
new file mode 100644
index 00000000..af51c864
--- /dev/null
+++ b/admportal/views/tunnel/partnerProperties.ejs
@@ -0,0 +1,184 @@
+<!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>SDNC-MLC AdminPortal</title>
+<script class="init">
+ $(document).ready(function() {
+ $('#partner_properties').DataTable( {
+ "order": [[ 0, "asc" ]]
+ } );
+} );
+</script>
+
+</head>
+<body>
+
+<div class="well well-sm">
+<h3>Partner Properties</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_partner_properties">
+ Add Partner Properties
+ </button>
+ </div>
+ <% } %>
+
+ <table id="partner_properties" class="table table-hover table-condensed">
+ <thead>
+ <tr>
+ <th>*Partner</th>
+ <th>*Username</th>
+ <th>*Password</th>
+ <% if(priv == 'A'){ %>
+ <th>Action</th>
+ <% } %>
+ </tr>
+ </thead>
+ <tbody>
+ <% rows.forEach( function(row) { %>
+ <tr>
+ <td><%= row.partner %></td>
+ <td><%= row.auth_username %></td>
+ <td>*****</td>
+ <% if(priv == 'A') { %>
+ <td>
+ <button type="button" class="btn btn-default btn-xs"
+ onclick="updatePartnerProperties('<%= row.partner %>','<%= row.auth_username %>','<%= row.auth_password %>');">Update</button>
+ <button type="button" class="btn btn-default btn-xs"
+ onclick="deletePartnerProperties('<%= row.partner %>');">Delete</button>
+ </td>
+ <% } %>
+
+ </tr>
+ <% }); %>
+ </tbody>
+ </table>
+
+</div>
+
+<% include ../partials/partner_properties %>
+<footer>
+ <% include ../partials/footer %>
+</footer>
+
+<script type="text/javascript">
+function submitPartnerProperties(form)
+{
+ var errorMsg='';
+ var partner = '';
+ var auth_username = '';
+ var auth_password = '';
+ var confirm_auth_password = '';
+
+ if ( form.name == 'addForm' )
+ {
+ partner = form.nf_partner;
+ auth_username = form.nf_auth_username;
+ auth_password = form.nf_auth_password;
+ confirm_auth_password = form.nf_confirm_auth_password;
+
+ if ( (partner.value == null) || (partner.value == "") || isblank(partner.value) )
+ {
+ errorMsg += 'Partner is required.<br>';
+ }
+ if( errorMsg.length > 0 ) {
+ bootbox.alert(errorMsg);
+ return;
+ }
+ if ( auth_password.value != confirm_auth_password.value )
+ {
+ bootbox.alert('Passwords do not match.');
+ return;
+ }
+ }
+ else
+ {
+ partner = form.uf_partner;
+ auth_username = form.uf_auth_username;
+ auth_password = form.uf_auth_password;
+ confirm_auth_password = form.uf_confirm_auth_password;
+ if ( auth_password.value != confirm_auth_password.value )
+ {
+ bootbox.alert('Passwords do not match.');
+ return;
+ }
+ }
+ form.submit();
+}
+
+function updatePartnerProperties(partner,auth_username,auth_password) {
+
+ document.getElementById('uf_partner').value=partner;
+ document.getElementById('uf_key_partner').value=partner;
+ document.getElementById('uf_auth_username').value=auth_username;
+ document.getElementById('uf_auth_password').value=auth_password;
+ document.getElementById('uf_confirm_auth_password').value=auth_password;
+
+ $('#update_partner_properties').modal('show');
+}
+
+function deletePartnerProperties(partner) {
+
+ var url_string = encodeURI("/tunnel/deletePartnerProperties?partner=" + partner);
+
+ bootbox.confirm({
+ message: "Are you sure you want to delete Partner Property [ " + partner + " ]",
+ 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/tunnel/roadmMapping.ejs b/admportal/views/tunnel/roadmMapping.ejs
new file mode 100644
index 00000000..347cf03e
--- /dev/null
+++ b/admportal/views/tunnel/roadmMapping.ejs
@@ -0,0 +1,230 @@
+<!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>SDNC-MLC AdminPortal</title>
+
+
+<script class="init">
+ $(document).ready(function() {
+ $('#roadmMapping').DataTable( {
+ "order": [[ 0, "asc" ]]
+ } );
+} );
+</script>
+</head>
+
+<body>
+
+<div class="well well-sm">
+<h3>ROADM Mapping</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 btn-md" data-toggle="modal" data-target="#add_roadm_mapping">Add Mapping</button>
+ </div>
+ <% } %>
+
+ <table id="roadmMapping" class="table table-hover table-condensed">
+ <thead>
+ <tr>
+ <th>*Router Name</th>
+ <th>*ROADM Name</th>
+ <th>*CLLI</th>
+ <th>*City Name</th>
+ <th>*LAT</th>
+ <th>*LON</th>
+ <th>*SNRC</th>
+ <% if(priv == 'A'){ %>
+ <th>Action</th>
+ <% } %>
+ </tr>
+ </thead>
+ <tbody>
+ <% rows.forEach( function(row) { %>
+ <tr>
+ <td><%= row.router_name %></td>
+ <td><%= row.roadm_name %></td>
+ <td><%= row.clli %></td>
+ <td><%= row.city_name %></td>
+ <td><%= row.lat %></td>
+ <td><%= row.lon %></td>
+ <td><%= row.snrc %></td>
+ <% if(priv == 'A') { %>
+ <td>
+ <button type="button" class="btn btn-default btn-xs" onclick="updateRoadmMapping('<%= row.router_name %>',
+ '<%= row.roadm_name %>', '<%= row.clli %>', '<%= row.city_name %>', '<%= row.lat %>', '<%= row.lon %>', '<%= row.snrc %>');">Update</button>
+ <button type="button" class="btn btn-default btn-xs" onclick="deleteRoadmMapping('<%= row.router_name %>');">Delete</button>
+ </td>
+ <% } %>
+ </tr>
+ <% }); %>
+ </tbody>
+ </table>
+
+ <% if(priv == 'A'){ %>
+ <div class="actions" style="padding:0px 25px;">
+ <form method="POST" action="/tunnel/uploadRoadmMapping" 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>
+
+<% include ../partials/roadm_mapping %>
+<footer>
+ <% include ../partials/footer %>
+</footer>
+
+<script type="text/javascript">
+function saveRoadmMapping(form)
+{
+ var errorMsg='';
+ var router_name = '';
+ var roadm_name = '';
+ var clli = '';
+ var city_name = '';
+ var lat = '';
+ var lon = '';
+ var snrc = '';
+
+ if ( form.name == 'addForm' )
+ {
+ router_name = form.nf_router_name;
+ roadm_name = form.nf_roadm_name;
+ clli = form.nf_clli;
+ city_name = form.nf_city_name;
+ lat = form.nf_lat;
+ lon = form.nf_lon;
+ snrc = form.nf_snrc;
+ }
+ else
+ {
+ router_name = form.uf_router_name;
+ roadm_name = form.uf_roadm_name;
+ clli = form.uf_clli;
+ city_name = form.uf_city_name;
+ lat = form.uf_lat;
+ lon = form.uf_lon;
+ snrc = form.uf_snrc;
+ }
+
+ if ( (router_name.value == null) || (router_name.value == "") || isblank(router_name.value) )
+ {
+ errorMsg += 'Router Name is required.<br>';
+ }
+ if ( (roadm_name.value == null) || (roadm_name.value == "") || isblank(roadm_name.value) )
+ {
+ errorMsg += 'ROADM Name is required.<br>';
+ }
+ if ( (clli.value == null) || (clli.value == "") || isblank(clli.value) )
+ {
+ errorMsg += 'CLLI is required.<br>';
+ }
+ if ( (city_name.value == null) || (city_name.value == "") || isblank(city_name.value) )
+ {
+ errorMsg += 'City Name is required.<br>';
+ }
+ if ( (lat.value == null) || (lat.value == "") || isblank(lat.value) )
+ {
+ errorMsg += 'LAT (latitude) is required.<br>';
+ }
+ if ( (lon.value == null) || (lon.value == "") || isblank(lon.value) )
+ {
+ errorMsg += 'LON (longitude) is required.<br>';
+ }
+ if ( (snrc.value == null) || (snrc.value == "") || isblank(snrc.value) )
+ {
+ errorMsg += 'SNRC is required.<br>';
+ }
+ if( errorMsg.length > 0 ) {
+ bootbox.alert(errorMsg);
+ return;
+ }
+ form.submit();
+}
+
+function updateRoadmMapping(router_name,roadm_name,clli,city_name,lat,lon,snrc) {
+
+ document.getElementById('uf_router_name').value=router_name;
+ document.getElementById('uf_roadm_name').value=roadm_name;
+ document.getElementById('uf_clli').value=clli;
+ document.getElementById('uf_city_name').value=city_name;
+ document.getElementById('uf_lat').value=lat;
+ document.getElementById('uf_lon').value=lon;
+ document.getElementById('uf_snrc').value=snrc;
+ document.getElementById('uf_key_router_name').value=router_name;
+
+ $('#update_roadm_mapping').modal('show');
+}
+
+function deleteRoadmMapping(router_name) {
+
+ var url_string = encodeURI("/tunnel/deleteRoadmMapping?router_name=" + router_name);
+
+ bootbox.confirm({
+ message: "Are you sure you want to delete this mapping? [" + router_name + "]",
+ 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/tunnel/routerMaster.ejs b/admportal/views/tunnel/routerMaster.ejs
new file mode 100644
index 00000000..eada3f39
--- /dev/null
+++ b/admportal/views/tunnel/routerMaster.ejs
@@ -0,0 +1,167 @@
+<!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() {
+ $('#routerMaster').DataTable( {
+ "order": [[ 0, "asc" ]]
+ } );
+} );
+</script>
+</head>
+
+<body>
+
+<div class="well well-sm">
+<h3>Router Master</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 btn-md" data-toggle="modal" data-target="#add_router_master">Add Router</button>
+ </div>
+ <% } %>
+
+ <table id="routerMaster" class="table table-hover table-condensed">
+ <thead>
+ <tr>
+ <th>*CRS Name</th>
+ <th>Loopback IP</th>
+ <% if(priv == 'A'){ %>
+ <th>Action</th>
+ <% } %>
+ </tr>
+ </thead>
+ <tbody>
+ <% rows.forEach( function(row) { %>
+ <tr>
+ <td><%= row.crs_name %></td>
+ <td><%= row.loopback_ip %></td>
+ <% if(priv == 'A') { %>
+ <td>
+ <button type="button" class="btn btn-default btn-xs" onclick="updateRouterMaster('<%= row.crs_name %>',
+ '<%= row.loopback_ip %>');">Update</button>
+ <button type="button" class="btn btn-default btn-xs" onclick="deleteRouterMaster('<%= row.crs_name %>');">Delete</button>
+ </td>
+ <% } %>
+ </tr>
+ <% }); %>
+ </tbody>
+ </table>
+</div>
+
+<% include ../partials/router_master %>
+<footer>
+ <% include ../partials/footer %>
+</footer>
+
+<script type="text/javascript">
+function saveRouterMaster(form)
+{
+ var errorMsg='';
+ var crs_name = '';
+ var loopback_ip = '';
+
+ if ( form.name == 'addForm' )
+ {
+ crs_name = form.nf_crs_name;
+ loopback_ip = form.nf_loopback_ip;
+ }
+ else
+ {
+ crs_name = form.uf_crs_name;
+ loopback_ip = form.uf_loopback_ip;
+ }
+
+
+ if ( (crs_name.value == null) || (crs_name.value == "") || isblank(crs_name.value) )
+ {
+ errorMsg += 'CRS Name is required.<br>';
+ }
+ if ( (loopback_ip.value == null) || (loopback_ip.value == "") || isblank(loopback_ip.value) )
+ {
+ errorMsg += 'Loopback IP is required.<br>';
+ }
+ if( errorMsg.length > 0 ) {
+ bootbox.alert(errorMsg);
+ return;
+ }
+ form.submit();
+}
+
+function updateRouterMaster(crs_name,loopback_ip) {
+
+ document.getElementById('uf_crs_name').value=crs_name;
+ document.getElementById('uf_loopback_ip').value=loopback_ip;
+ document.getElementById('uf_key_crs_name').value=crs_name;
+
+ $('#update_router_master').modal('show');
+}
+
+function deleteRouterMaster(crs_name) {
+
+ var url_string = encodeURI("/tunnel/deleteRouterMaster?crs_name=" + crs_name);
+
+ bootbox.confirm({
+ message: "Are you sure you want to delete this Router [" + crs_name + "]",
+ callback: function(result) {
+ if ( result )
+ {
+ location.assign(url_string);
+ }
+ return;
+ },
+ buttons: {
+ cancel: {
+ label: "Cancel"
+ },
+ confirm: {
+ label: "Yes"
+ }
+ }
+ });
+}
+
+</script>
+
+</body>
+</html>
+