3 #tenantSliceDataWrapper {
7 <script type="text/javascript" src="http://www.google.com/jsapi"></script>
8 <link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css">
9 <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
10 <div id="dialog-form" title="Add/Remove Slivers" style="display: none;">
13 <label for="numberOfSlivers">Number of Slivers</label>
14 <input type="text" name="numberOfSlivers" id="numOfSlivers" class="text ui-widget-content ui-corner-all">
18 <div id="adv-dialog-form" title="Add/Remove Slivers" style="display: none;">
21 <label for="numberOfSlivers">Number of Slivers</label>
22 <input type="text" name="numberOfSlivers" id="advNumOfSlivers" class="text ui-widget-content ui-corner-all">
26 <div id="create-slice-form" title="Create New Slice" style="display: none;">
29 <div class="create-slice-row">
30 <label for="new-slice-name">Name</label>
31 <input type="text" name="new-slice-name" id="new-slice-name" class="text">
33 <div class="create-slice-row">
34 <label for="new-service-class">Service Class</label>
35 <select id="new-service-class"></select>
37 <div class="create-slice-row">
38 <label for="new-image">Image</label>
39 <select id="new-image"></select>
41 <div id=tooltip>Slice Name cannot be empty</div>
45 <script type="text/javascript">
46 google.load('visualization', '1', {
47 'packages': ['controls', 'table', 'corechart', 'geochart']
51 $(document).ready(function () {
52 function showSliceData(data) {
53 var value = $("#tenantSliceDropDown").val();
54 var imageData = data['image']['rows'];
55 var networkData = data['network']['rows'];
56 $("#service-level-value").empty();
57 $("#slice-image-value").empty();
58 $("#tenantSiteTable").empty();
59 $('#tenantSiteTable').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="tenantSiteTableData"></table>');
60 var rows = data['userSliceInfo']['rows'];
64 if (rows[row]['sliceName'] == value) {
65 sliceImageData = rows[row]['sliceImage'];
66 $("#slice-image-value").html(sliceImageData);
67 serviceLevelData = rows[row]['sliceServiceClass'];
68 $("#service-level-value").html(serviceLevelData);
69 var innerRows = rows[row]['sliceSite'];
70 for (innerRow in innerRows) {
71 sliverCount = innerRows[innerRow];
72 siteNames.push([innerRow, sliverCount]);
76 oTable = $('#tenantSiteTableData').dataTable({
80 "bLengthChange": false,
86 "sTitle": "Allocated",
89 //{ "sTitle": "Allocated" , sClass: "alignCenter"},
90 //{ "sTitle": "Desired" , sClass: "alignCenter"},
95 function initTenant() {
99 success: function (data) {
100 UserSliceTable(data);
102 $("#tooltip").css("display", "none");
104 complete: function () {}
107 function UserSliceTable(data) {
108 //Add check for #dynamicusersliceinfo_filter label-> input having focus here
109 var rows = data['userSliceInfo']['rows'];
110 $("<div></div>").attr('id', 'tenantSliceDataWrapper').appendTo('#tabs-5');
111 $("<div></div>").attr('id', 'advancedTenantSliceDataWrapper').appendTo('#tabs-5');
113 sliceData += '<div class="tenant-row"><span class="summary-attr"><b>Slice Name:</b> <span id="slice-name-value"> </span> </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Service Level:</b> <span id="service-level-value"> </span> </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Image:</b> <span id="slice-image-value"> </span> </span><br></div><div class="btn btn-high btn-info" id="advanced-tenant">Go to Advanced View</div>';
114 var advSliceData = '';
115 advSliceData += '<div class="adv-tenant-row"><span class="summary-attr"><b>Slice Name:</b> <span id="adv-slice-name-value"> </span> </span><br><br></div><div class="tenant-row"><span class="summary-attr"><b>Service Level:</b> <span id="adv-service-level-value"> </span> </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Image:</b> <span id="adv-slice-image-value"> </span> </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Network:</b> <span id="adv-slice-network-value"> </span> </span></div><div class="btn btn-high btn-info" id="basic-tenant">Go to Basic View</div>';
116 $('#tenantSliceDataWrapper').append(sliceData);
117 $('#advancedTenantSliceDataWrapper').append(advSliceData);
118 $("#advancedTenantSliceDataWrapper").css("display", "none");
119 $("<select></select>").attr('id', 'tenantSliceDropDown').appendTo('#slice-name-value');
121 $("#tenantSliceDropDown").append("<option>" + rows[row]['sliceName'] + "</option>");
123 $("<div></div>").attr('id', 'tenantSiteTable').appendTo('#tabs-5');
124 $("<div></div>").attr('id', 'advTenantSiteTable').appendTo('#tabs-5').css("display", "none");
125 $('<div class="btn btn-success" id="create-slice-btn"><i class="icon-plus-sign icon-white"></i> Create New Slice</div>').appendTo("#tabs-5");
126 $('<div class="btn btn-success" id="sliver-btn"><i class="icon-plus-sign icon-white"></i> Add/Remove Slivers</div>').appendTo("#tabs-5");
127 $('<div class="btn btn-high btn-info" id="save-btn">Save</div>').appendTo("#tabs-5").css("display", "none");
128 $('#tenantSliceDropDown').on('change', function () {
131 $("#advanced-tenant").click(function () {
132 var selectedValue = $("#tenantSliceDropDown").val();
133 $("#tenantSliceDataWrapper").toggle();
134 $("#advancedTenantSliceDataWrapper").toggle();
135 $("#advTenantSiteTable").toggle();
136 $("#tenantSiteTable").toggle();
137 $("#sliver-btn").toggle();
138 $("#save-btn").toggle();
139 //$('#adv-slice-name-value').empty();
140 $("<select></select>").attr('id', 'advTenantSliceDropDown').appendTo('#adv-slice-name-value');
142 $("#advTenantSliceDropDown").append("<option>" + rows[row]['sliceName'] + "</option>");
144 $("#advTenantSliceDropDown").val(selectedValue);
145 advShowSliceData(data);
147 $('#advTenantSliceDropDown').on('change', function () {
148 advShowSliceData(data);
152 function editSliverAdv() {
153 $(".edit-view").click(function () {
154 var allocatedSlivers = parseInt($(this).parent().siblings(".allocated").html());
155 var td = $(this).parent().siblings(".allocated");
156 var pos = oTable.fnGetPosition(td[0]);
157 $("#adv-dialog-form").dialog({
164 allocatedSlivers += parseInt($("#advNumOfSlivers").val());
165 $(this).dialog("close");
166 td.html(allocatedSlivers);
168 "Remove": function () {
169 allocatedSlivers -= parseInt($("#advNumOfSlivers").val());
170 $(this).dialog("close");
171 td.html(allocatedSlivers);
175 $("#adv-dialog-form").dialog("open");
179 function advShowSliceData(data) {
180 var value = $("#advTenantSliceDropDown").val();
181 var serviceLevelData = data['sliceServiceClass']['rows'];
182 var imageData = data['image']['rows'];
183 var networkData = data['network']['rows'];
184 var siteRows = data['sites']['rows'];
185 $("#adv-service-level-value").empty();
186 $("#adv-slice-image-value").empty();
187 $("#adv-slice-network-value").empty();
188 $("<select></select>").attr('id', 'adv-service-level-dropdown').appendTo('#adv-service-level-value');
189 $("<select></select>").attr('id', 'adv-image-dropdown').appendTo('#adv-slice-image-value');
190 $("<select></select>").attr('id', 'adv-network-dropdown').appendTo('#adv-slice-network-value');
191 $('#advTenantSiteTable').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="advTenantSiteTableData"></table>');
192 var rows = data['userSliceInfo']['rows'];
197 if (rows[row]['sliceName'] == value) {
198 var innerRows = rows[row]['sliceSite'];
199 for (innerRow in innerRows) {
200 tableData[innerRow] = innerRows[innerRow];
204 for (row in siteRows) {
205 var entry = siteRows[row]['siteName'];
206 if (!(entry in tableData)) {
207 tableData[siteRows[row]['siteName']] = 0;
210 for (row in tableData) {
211 siteNames.push([row, tableData[row], '<a href="#" class="edit-view">Edit</a>']);
213 $("#save-btn").click(function () {
215 var newSite = $(".siteName");
216 var newAllocated = $(".allocated");
217 for(i=1; i<newSite.length; i++){
218 newTableData[$($(".siteName")[i]).text()]=$($(".allocated")[i]).text();
220 for(newRow in newTableData){
221 if(newTableData[newRow] > tableData[newRow]){
223 url : '/tenantaddorremsliver/',
227 count : newTableData[newRow] - tableData[newRow],
228 slice : $("#advTenantSliceDropDown").val(),
230 csrfmiddlewaretoken: "{{ csrf_token }}", // < here
238 else if(newTableData[newRow] < tableData[newRow]){
240 url : '/tenantaddorremsliver/',
244 count : tableData[newRow] - newTableData[newRow],
245 slice : $("#advTenantSliceDropDown").val(),
247 csrfmiddlewaretoken: "{{ csrf_token }}", // < here
258 oTable = $('#advTenantSiteTableData').dataTable({
262 "bLengthChange": false,
267 "sTitle": "Site Name",
270 "sTitle": "Allocated",
271 sClass: "alignCenter allocated"
274 sClass: "alignCenter"
277 for (row in serviceLevelData) {
278 $("#adv-service-level-dropdown").append("<option>" + serviceLevelData[row]['serviceClass'] + "</option>");
280 for (row in imageData) {
281 $("#adv-image-dropdown").append("<option>" + imageData[row]['Image'] + "</option>");
283 for (row in networkData) {
284 $("#adv-network-dropdown").append("<option>" + networkData[row]['Network'] + "</option>");
288 $("#basic-tenant").click(function () {
289 $("#tenantSliceDataWrapper").toggle();
290 $("#advancedTenantSliceDataWrapper").toggle();
291 $("#advTenantSiteTable").toggle();
292 $("#tenantSiteTable").toggle();
293 $("#sliver-btn").toggle();
294 $("#save-btn").toggle();
296 $("#sliver-btn").click(function () {
297 $("#dialog-form").dialog({
303 "Submit": function () {
304 /************Code to add or remove slivers for a slice will go here*******/
306 Cancel: function () {
307 $(this).dialog("close");
311 $("#dialog-form").dialog("open");
313 $("#create-slice-btn").click(function () {
314 var serviceLevelData = data['sliceServiceClass']['rows'];
315 var imageData = data['image']['rows'];
316 for (row in serviceLevelData) {
317 $("#new-service-class").append("<option>" + serviceLevelData[row]['serviceClass'] + "</option>");
319 for (row in imageData) {
320 $("#new-image").append("<option>" + imageData[row]['Image'] + "</option>");
322 var nameOfSlice = $("#new-slice-name").val();
323 var nameOfServiceClass = $("#new-service-class").val();
324 var nameOfImage = $("#new-image").val();
325 $("#create-slice-form").dialog({
331 "Submit": function () {
333 url: '/createnewslice/',
336 sliceName: $("#new-slice-name").val(),
337 serviceClass: nameOfServiceClass,
338 imageName: nameOfImage,
340 csrfmiddlewaretoken: "{{ csrf_token }}", // < here
344 beforeSend: function () {
345 if (!$("#new-slice-name").val()) {
346 $("#tooltip").css("display", "block");
352 success: function (response) {},
353 complete: function () {
358 Cancel: function () {
359 $(this).dialog("close");
363 $("#create-slice-form").dialog("open");