blob: bf4947183d37d354b078e90751a0689aead38e6c [file] [log] [blame]
Scott Baker537d8232014-04-08 23:40:56 -07001<!doctype html>
Scott Baker537d8232014-04-08 23:40:56 -07002<script type="text/javascript" src="http://www.google.com/jsapi"></script>
Scott Baker537d8232014-04-08 23:40:56 -07003<div id="dialog-form" title="Add/Remove Slivers" style="display: none;">
4 <form>
5 <fieldset>
6 <label for="numberOfSlivers">Number of Slivers</label>
7 <input type="text" name="numberOfSlivers" id="numOfSlivers" class="text ui-widget-content ui-corner-all">
Scott Bakeredf2f672014-04-22 10:17:37 -07008 <div id=basic-tooltip>Please enter number of slivers</div>
Scott Baker537d8232014-04-08 23:40:56 -07009 </fieldset>
10 </form>
11</div>
12<div id="adv-dialog-form" title="Add/Remove Slivers" style="display: none;">
13 <form>
14 <fieldset>
15 <label for="numberOfSlivers">Number of Slivers</label>
16 <input type="text" name="numberOfSlivers" id="advNumOfSlivers" class="text ui-widget-content ui-corner-all">
Scott Bakeredf2f672014-04-22 10:17:37 -070017 <div id=adv-tooltip>Please enter number of slivers</div>
Scott Baker537d8232014-04-08 23:40:56 -070018 </fieldset>
19 </form>
20</div>
21<div id="create-slice-form" title="Create New Slice" style="display: none;">
22 <form>
23 <fieldset>
24 <div class="create-slice-row">
25 <label for="new-slice-name">Name</label>
Scott Baker4b0cedd2014-04-22 21:01:21 -070026 <input type="text" name="new-slice-name" id="new-slice-name">
Scott Baker537d8232014-04-08 23:40:56 -070027 </div>
28 <div class="create-slice-row">
29 <label for="new-service-class">Service Class</label>
Scott Bakeredf2f672014-04-22 10:17:37 -070030 <select id="new-service-class" class="tenant-create-slice"></select>
Scott Baker537d8232014-04-08 23:40:56 -070031 </div>
32 <div class="create-slice-row">
33 <label for="new-image">Image</label>
Scott Bakeredf2f672014-04-22 10:17:37 -070034 <select id="new-image" class="tenant-create-slice"></select>
Scott Baker537d8232014-04-08 23:40:56 -070035 </div>
Scott Bakeredf2f672014-04-22 10:17:37 -070036 <div class="create-slice-row">
Scott Baker9d9650d2014-05-23 11:50:54 -070037 <label for="new-network">Network Ports</label>
Scott Baker168b7412014-05-16 14:25:41 -070038 <input type="text" name="new-network" id="new-network">
Scott Bakeredf2f672014-04-22 10:17:37 -070039 </div>
40 <div class="create-slice-row">
Scott Baker168b7412014-05-16 14:25:41 -070041 <label for="private-vol">Include Private Vol</label>
42 <input type="checkbox" name="checkbox" id="private-vol" value="value">
43 </div>
44 <div class="create-slice-row">
Scott Bakeredf2f672014-04-22 10:17:37 -070045 <label for="mount-data-sets">Data Sets</label>
46 <select id="mount-data-sets" class="tenant-create-slice"></select>
47 </div>
48 <div class="create-slice-row">
49 <label for="number-of-slivers">Number Of Slivers</label>
Scott Baker4b0cedd2014-04-22 21:01:21 -070050 <input type="text" name="number-of-slivers" id="number-of-slivers">
Scott Bakeredf2f672014-04-22 10:17:37 -070051 </div>
Scott Baker537d8232014-04-08 23:40:56 -070052 <div id=tooltip>Slice Name cannot be empty</div>
53 </fieldset>
54 </form>
55</div>
Scott Bakeredf2f672014-04-22 10:17:37 -070056<div id="delete-slice-form" title="Delete a Slice" style="display: none;">
57 <form>
58 <fieldset>
59 <div class="create-slice-row">
60 <label for="delete-slice">Choose a Slice</label>
61 <select id="delete-slice"></select>
62 </div>
63 </fieldset>
64 </form>
65</div>
Scott Baker537d8232014-04-08 23:40:56 -070066<script type="text/javascript">
Scott Bakeredf2f672014-04-22 10:17:37 -070067 google.load('visualization', '1', {
68 'packages': ['controls', 'table', 'corechart', 'geochart']
69 });
70 </script>
71 <script>
72 $(document).ready(function () {
Scott Baker168b7412014-05-16 14:25:41 -070073 function showSliceData(rows,imageData,serviceLevelData,siteRows,dataSet,value) {
Scott Bakeredf2f672014-04-22 10:17:37 -070074 $("#service-level-value").empty();
75 $("#slice-image-value").empty();
76 $("#tenantSiteTable").empty();
77 $('#tenantSiteTable').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="tenantSiteTableData"></table>');
78 $("#tenantSliceDropDown").val(value);
Scott Bakeredf2f672014-04-22 10:17:37 -070079 var siteNames = [];
80 var sliverCount;
81 for (row in rows) {
82 if (rows[row]['sliceName'] == value) {
83 sliceImageData = rows[row]['preferredImage'];
84 $("#slice-image-value").html(sliceImageData);
Scott Baker168b7412014-05-16 14:25:41 -070085 serviceLevelDataBasic = rows[row]['sliceServiceClass'];
86 $("#service-level-value").html(serviceLevelDataBasic);
Scott Bakeredf2f672014-04-22 10:17:37 -070087 var innerRows = rows[row]['sliceSite'];
88 for (innerRow in innerRows) {
89 sliverCount = innerRows[innerRow];
90 siteNames.push([innerRow, sliverCount]);
91 }
92 }
93 }
94 oTable = $('#tenantSiteTableData').dataTable({
95 "bJQueryUI": true,
96 "bFilter": false,
97 "bInfo": false,
98 "bLengthChange": false,
99 "aaData": siteNames,
100 "bStateSave": true,
101 "aoColumns": [{
102 "sTitle": "Site Name"
103 }, {
104 "sTitle": "Allocated",
105 sClass: "alignCenter"
106 }
Scott Bakeredf2f672014-04-22 10:17:37 -0700107 ]
108 });
109 $('#tenantSliceDropDown').on('change', function () {
110 var value = $("#tenantSliceDropDown").val();
111 //alert(value);
Scott Baker168b7412014-05-16 14:25:41 -0700112 checkForBasicAdvView(value,rows,imageData,serviceLevelData,siteRows,dataSet);
Scott Bakeredf2f672014-04-22 10:17:37 -0700113 });
114 }
115
Scott Baker168b7412014-05-16 14:25:41 -0700116 function downloadSliceInfo(rows,imageData,serviceLevelData,siteRows,dataSet,value){
Scott Bakeredf2f672014-04-22 10:17:37 -0700117 $("#download-details").unbind().click(function(){
118 function download(filename, text) {
119 var sliceDetails = document.createElement('a');
120 sliceDetails.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
121 sliceDetails.setAttribute('download', filename);
122 sliceDetails.click();
123 }
Scott Bakeredf2f672014-04-22 10:17:37 -0700124 var sliceInfo;
125 for (row in rows){
126 if(rows[row]['sliceName']==value){
Scott Baker03e3fff2014-04-23 16:51:15 -0700127 sliceInfo = "Slice Name: "+rows[row]['sliceName']+"\nNumber of Slivers: "+rows[row]['numOfSlivers']+"\nService Level: "+rows[row]['sliceServiceClass']+"\nImage: "+rows[row]['preferredImage']+"\n";
Scott Bakeredf2f672014-04-22 10:17:37 -0700128 for (instanceNodePairs in rows[row]['instanceNodePair']){
129 sliceInfo += instanceNodePairs+"@"+rows[row]['instanceNodePair'][instanceNodePairs]+"\n";
130 }
131 }
132 }
133 download('slice.txt', sliceInfo);
134 });
135 }
136 function editSliverAdv() {
137 $(".edit-view").click(function () {
138 var allocatedSlivers = parseInt($(this).parent().siblings(".allocated").html());
139 var td = $(this).parent().siblings(".allocated");
140 var pos = oTable.fnGetPosition(td[0]);
Scott Baker168b7412014-05-16 14:25:41 -0700141 $("#numOfSlivers").val("");;
142 $("#advNumOfSlivers").val("");;
Scott Bakeredf2f672014-04-22 10:17:37 -0700143 $("#adv-tooltip").css("display", "none");
Scott Bakeredf2f672014-04-22 10:17:37 -0700144 $("#adv-dialog-form").dialog({
145 autoOpen: false,
146 height: 200,
147 width: 350,
148 modal: true,
149 dialogClass: "tenantDialog",
150 buttons: {
151 "Add": function () {
152 allocatedSlivers += parseInt($("#advNumOfSlivers").val());
Scott Bakeredf2f672014-04-22 10:17:37 -0700153 $("#adv-tooltip").css("display", "block");
Scott Bakeredf2f672014-04-22 10:17:37 -0700154 $(this).dialog("close");
155 td.html(allocatedSlivers);
Scott Bakeredf2f672014-04-22 10:17:37 -0700156 },
157 "Remove": function () {
158 allocatedSlivers -= parseInt($("#advNumOfSlivers").val());
Scott Bakeredf2f672014-04-22 10:17:37 -0700159 $("#adv-tooltip").css("display", "block");
Scott Bakeredf2f672014-04-22 10:17:37 -0700160 $(this).dialog("close");
161 td.html(allocatedSlivers);
Scott Bakeredf2f672014-04-22 10:17:37 -0700162 }
163 }
164 });
165 $("#adv-dialog-form").dialog("open");
166 });
167 }
168
Scott Baker168b7412014-05-16 14:25:41 -0700169 function advShowSliceData(rows,imageData,serviceLevelData,siteRows,dataSet,value) {
Scott Bakeredf2f672014-04-22 10:17:37 -0700170 $("#adv-service-level-value").empty();
171 $("#adv-slice-image-value").empty();
172 $("#adv-slice-data-set-value").empty();
Scott Bakeredf2f672014-04-22 10:17:37 -0700173 $("#advTenantSliceDropDown").val(value);
174 $("<select></select>").attr('id', 'adv-service-level-dropdown').appendTo('#adv-service-level-value');
175 $("<select></select>").attr('id', 'adv-image-dropdown').appendTo('#adv-slice-image-value');
Scott Bakeredf2f672014-04-22 10:17:37 -0700176 $("<select></select>").attr('id', 'adv-dataset-dropdown').appendTo('#adv-slice-data-set-value');
177 $('#advTenantSiteTable').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="advTenantSiteTableData"></table>');
Scott Bakeredf2f672014-04-22 10:17:37 -0700178 var siteNames = [];
179 var sliverCount;
180 var tableData = {};
181 for (row in serviceLevelData) {
182 $("#adv-service-level-dropdown").append("<option>" + serviceLevelData[row]['serviceClass'] + "</option>");
183 }
184 for (row in imageData) {
185 $("#adv-image-dropdown").append("<option>" + imageData[row]['Image'] + "</option>");
186 }
Scott Bakeredf2f672014-04-22 10:17:37 -0700187 for (row in dataSet) {
188 $("#adv-dataset-dropdown").append("<option>" + dataSet[row]['DataSet'] + "</option>");
189 }
190
191 for (row in rows) {
192 if (rows[row]['sliceName'] == value) {
193 var innerRows = rows[row]['sliceSite'];
194 $("#adv-service-level-dropdown").val(rows[row]['sliceServiceClass']);
195 $("#adv-image-dropdown").val(rows[row]['preferredImage']);
196 $("#adv-dataset-dropdown").val(rows[row]['sliceDataSet']);
Scott Bakeredf2f672014-04-22 10:17:37 -0700197 for (innerRow in innerRows) {
198 tableData[innerRow] = innerRows[innerRow];
199 }
200 }
201 }
202 for (row in siteRows) {
203 var entry = siteRows[row]['siteName'];
204 if (!(entry in tableData)) {
205 tableData[siteRows[row]['siteName']] = 0;
206 }
207 }
208 for (row in tableData) {
209 siteNames.push([row, tableData[row], '<a href="#" class="edit-view">Edit</a>']);
210 }
211 $("#save-btn").unbind().click(function () {
212 var newTableData = {};
213 var newSite = $(".siteName");
214 var newAllocated = $(".allocated");
215 for (i = 1; i < newSite.length; i++) {
216 newTableData[$($(".siteName")[i]).text()] = parseInt($($(".allocated")[i]).text());
217 }
218 for (newRow in newTableData) {
219 if (newTableData[newRow] > tableData[newRow]) {
220 $.ajax({
221 url: '/tenantaddorremsliver/',
222 dataType: 'json',
223 data: {
224 siteName: newRow,
225 count: newTableData[newRow] - tableData[newRow],
226 slice: $("#advTenantSliceDropDown").val(),
227 actionToDo: "add",
228 csrfmiddlewaretoken: "{{ csrf_token }}", // < here
229 state: "inactive"
230 },
231 type: 'POST',
232 complete: function () {
Scott Baker168b7412014-05-16 14:25:41 -0700233 //location.reload();
234
Scott Bakeredf2f672014-04-22 10:17:37 -0700235 }
236 });
237 } else if (newTableData[newRow] < tableData[newRow]) {
238 $.ajax({
239 url: '/tenantaddorremsliver/',
240 dataType: 'json',
241 data: {
242 siteName: newRow,
243 count: tableData[newRow] - newTableData[newRow],
244 slice: $("#advTenantSliceDropDown").val(),
245 actionToDo: "rem",
246 csrfmiddlewaretoken: "{{ csrf_token }}", // < here
247 state: "inactive"
248 },
249 type: 'POST',
250 complete: function () {
Scott Baker168b7412014-05-16 14:25:41 -0700251 //location.reload();
Scott Bakeredf2f672014-04-22 10:17:37 -0700252 }
253 });
254 }
255 }
256 $.ajax({
257 url: '/updateslice/',
258 dataType: 'json',
259 data: {
260 sliceName: $("#advTenantSliceDropDown").val(),
261 serviceClass: $("#adv-service-level-dropdown").val(),
262 imageName: $("#adv-image-dropdown").val(),
Scott Baker4b0cedd2014-04-22 21:01:21 -0700263 dataSet: $("#adv-dataset-dropdown").val(),
Scott Baker9d9650d2014-05-23 11:50:54 -0700264 networkPorts: $("#adv-network-value").val(),
265 privateVolume: $("#private-vol-checkbox").is(":checked"),
Scott Bakeredf2f672014-04-22 10:17:37 -0700266 actionToDo: "update",
267 csrfmiddlewaretoken: "{{ csrf_token }}", // < here
268 state: "inactive"
269 },
270 type: 'POST',
Scott Baker0486e172014-06-01 20:30:30 -0700271 success: function () {
Scott Baker168b7412014-05-16 14:25:41 -0700272 $("#tabs-5").empty();
273 initTenant(); //location.reload();
Scott Baker0486e172014-06-01 20:30:30 -0700274 },
275 error:function (xhr, textStatus, thrownError){
276 errorDialog("Error:", textStatus + " " + xhr.responseText);
277 }
278
Scott Bakeredf2f672014-04-22 10:17:37 -0700279 });
280
281 });
282 oTable = $('#advTenantSiteTableData').dataTable({
283 "bJQueryUI": true,
284 "bFilter": false,
285 "bInfo": false,
286 "bLengthChange": false,
287 "bPaginate": false,
288 "aaData": siteNames,
289 "bStateSave": true,
290 "aoColumns": [{
291 "sTitle": "Site Name",
292 sClass: "siteName"
293 }, {
294 "sTitle": "Allocated",
295 sClass: "alignCenter allocated"
296 }, {
297 "sTitle": "Edit",
298 sClass: "alignCenter"
299 }]
300 });
301 editSliverAdv();
302 $('#advTenantSliceDropDown').on('change', function () {
Scott Baker168b7412014-05-16 14:25:41 -0700303 var selectedValue = $("#advTenantSliceDropDown").val();
304 checkForBasicAdvView(selectedValue, rows,imageData,serviceLevelData,siteRows,dataSet);
Scott Bakeredf2f672014-04-22 10:17:37 -0700305 });
306 }
307
Scott Baker168b7412014-05-16 14:25:41 -0700308 function checkForBasicAdvView(value, rows,imageData,serviceLevelData,siteRows,dataSet) {
Scott Bakeredf2f672014-04-22 10:17:37 -0700309 for (row in rows) {
310 if (rows[row]['sliceName'] == value) {
311 if (rows[row]['numOfSites'] > 1) {
Scott Baker168b7412014-05-16 14:25:41 -0700312 advShowSliceData(rows,imageData,serviceLevelData,siteRows,dataSet,value);
313 downloadSliceInfo(rows,imageData,serviceLevelData,siteRows,dataSet,value);
Scott Bakeredf2f672014-04-22 10:17:37 -0700314 $("#tenantSliceDataWrapper").css("display","none");
315 $("#advancedTenantSliceDataWrapper").css("display","block");
316 $("#advTenantSiteTable").css("display","block");
317 $("#tenantSiteTable").css("display","none");
318 $("#sliver-btn").css("display","none");
319 $("#save-btn").css("display","block");
320 break;
321 } else if(rows[row]['numOfSites'] <= 1){
Scott Baker168b7412014-05-16 14:25:41 -0700322 showSliceData(rows,imageData,serviceLevelData,siteRows,dataSet,value);
323 downloadSliceInfo(rows,imageData,serviceLevelData,siteRows,dataSet,value);
Scott Bakeredf2f672014-04-22 10:17:37 -0700324 $("#tenantSliceDataWrapper").css("display","block");
325 $("#advancedTenantSliceDataWrapper").css("display","none");
326 $("#advTenantSiteTable").css("display","none");
327 $("#tenantSiteTable").css("display","block");
328 $("#sliver-btn").css("display","block");
329 $("#save-btn").css("display","none");
330 break;
331 }break;
Scott Baker537d8232014-04-08 23:40:56 -0700332 }
333 }
334 }
Scott Baker537d8232014-04-08 23:40:56 -0700335
Scott Baker168b7412014-05-16 14:25:41 -0700336 function UserSliceTable(rows,imageData,serviceLevelData,siteRows,dataSet) {
Scott Bakeredf2f672014-04-22 10:17:37 -0700337 //Add check for #dynamicusersliceinfo_filter label-> input having focus here
Scott Bakeredf2f672014-04-22 10:17:37 -0700338 $("<div></div>").attr('id', 'tenantSliceDataWrapper').appendTo('#tabs-5');
339 $("<div></div>").attr('id', 'advancedTenantSliceDataWrapper').appendTo('#tabs-5');
340 var sliceData = '';
Scott Baker168b7412014-05-16 14:25:41 -0700341 sliceData += '<div class="tenant-row public-key-warning"><span class="summary-attr">You have not uploaded your Public Key. <a href="http://{{ request.get_host}}/admin/core/user/{{user.id}}">Click here</a> to upload it now.</span></div><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>';
Scott Bakeredf2f672014-04-22 10:17:37 -0700342 var advSliceData = '';
Scott Baker168b7412014-05-16 14:25:41 -0700343 advSliceData += '<div class="tenant-row public-key-warning"><span class="summary-attr">You have not uploaded your Public Key. <a href="http://{{ request.get_host}}/admin/core/user/{{user.id}}">Click here</a> to upload it now.</span></div><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 class="help-inline">Changes are potentially disruptive to existing slivers</span> </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Image:</b> <span id="adv-slice-image-value"> </span><span class="help-inline">Changes are potentially disruptive to existing slivers</span> </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Network:</b> <input type="text" name="adv-network-value" id="adv-network-value"> <span class="help-inline">List of port ranges(if any) e.g. 1021-1026,1029</span><br></div><div class="tenant-row"><span class="summary-attr"><b>Data Sets:</b> <span id="adv-slice-data-set-value"> </span> <input type="checkbox" name="checkbox" id="private-vol-checkbox" value="value"><span class="help-inline">Include Private Volume</span></span></div>';
Scott Bakeredf2f672014-04-22 10:17:37 -0700344 $('#tenantSliceDataWrapper').append(sliceData).css("display", "none");
345 $('#advancedTenantSliceDataWrapper').append(advSliceData);
346 $("#advancedTenantSliceDataWrapper").css("display", "none");
347 $("<select></select>").attr('id', 'tenantSliceDropDown').appendTo('#slice-name-value');
Scott Baker537d8232014-04-08 23:40:56 -0700348 for (row in rows) {
Scott Bakeredf2f672014-04-22 10:17:37 -0700349 $("#tenantSliceDropDown").append("<option>" + rows[row]['sliceName'] + "</option>");
Scott Baker537d8232014-04-08 23:40:56 -0700350 }
Scott Bakeredf2f672014-04-22 10:17:37 -0700351 $("<select></select>").attr('id', 'advTenantSliceDropDown').appendTo('#adv-slice-name-value');
Scott Baker537d8232014-04-08 23:40:56 -0700352 for (row in rows) {
Scott Bakeredf2f672014-04-22 10:17:37 -0700353 $("#advTenantSliceDropDown").append("<option>" + rows[row]['sliceName'] + "</option>");
Scott Baker537d8232014-04-08 23:40:56 -0700354 }
Scott Bakeredf2f672014-04-22 10:17:37 -0700355 $("<div></div>").attr('id', 'tenantSiteTable').appendTo('#tabs-5').css("display","none");
356 $("<div></div>").attr('id', 'advTenantSiteTable').appendTo('#tabs-5').css("display", "none");
357 $('<div class="btn btn-success" id="create-slice-btn"><i class="icon-plus-sign icon-white"></i>&nbsp;Create New Slice</div>').appendTo("#tabs-5");
358 $('<div class="btn btn-success" id="delete-slice-btn"><i class="icon-plus-sign icon-white"></i>&nbsp;Delete a Slice</div>').appendTo("#tabs-5");
359 $('<div class="btn btn-high btn-info" id="download-details">Download Slice Details</div>').appendTo("#tabs-5");
360 $('<div class="btn btn-success" id="sliver-btn"><i class="icon-plus-sign icon-white"></i>&nbsp;Add/Remove Slivers</div>').appendTo("#tabs-5");
361 $('<div class="btn btn-high btn-info" id="save-btn">Save</div>').appendTo("#tabs-5").css("display", "none");
Scott Baker4b0cedd2014-04-22 21:01:21 -0700362 $("#advanced-tenant").unbind().click(function () {
363 var value = $("#tenantSliceDropDown").val();
Scott Baker168b7412014-05-16 14:25:41 -0700364 advShowSliceData(rows,imageData,serviceLevelData,siteRows,dataSet,value);
Scott Bakeredf2f672014-04-22 10:17:37 -0700365 $("#tenantSliceDataWrapper").css("display","none");
366 $("#advancedTenantSliceDataWrapper").css("display","block");
367 $("#advTenantSiteTable").css("display","block");
368 $("#tenantSiteTable").css("display","none");
369 $("#sliver-btn").toggle();
370 $("#save-btn").toggle();
Scott Baker6253dfc2014-04-14 09:29:30 -0700371
Scott Baker537d8232014-04-08 23:40:56 -0700372 });
373 $("#sliver-btn").click(function () {
Scott Bakeredf2f672014-04-22 10:17:37 -0700374 $("#basic-tooltip").css("display", "none");
Scott Baker537d8232014-04-08 23:40:56 -0700375 $("#dialog-form").dialog({
376 autoOpen: false,
377 height: 200,
Scott Baker4b0cedd2014-04-22 21:01:21 -0700378 width: 400,
Scott Baker537d8232014-04-08 23:40:56 -0700379 modal: true,
Scott Bakeredf2f672014-04-22 10:17:37 -0700380 dialogClass: "tenantDialog",
Scott Baker537d8232014-04-08 23:40:56 -0700381 buttons: {
Scott Bakeredf2f672014-04-22 10:17:37 -0700382 "Add": function () {
383 $.ajax({
384 url: '/tenantaddorremsliver/',
385 dataType: 'json',
386 data: {
387 count: parseInt($("#numOfSlivers").val()),
388 slice: $("#tenantSliceDropDown").val(),
389 actionToDo: "add",
390 csrfmiddlewaretoken: "{{ csrf_token }}", // < here
391 state: "inactive"
392 },
393 type: 'POST',
394 beforeSend: function () {
395 if (!$("#numOfSlivers").val()) {
396 $("#basic-tooltip").css("display", "block");
397 return false;
398 } else {
399 return true;
400 }
401 },
Scott Baker168b7412014-05-16 14:25:41 -0700402 success: function () {
Scott Bakeredf2f672014-04-22 10:17:37 -0700403 location.reload();
Scott Baker168b7412014-05-16 14:25:41 -0700404$("#dialog-form").dialog("close");
Scott Bakeredf2f672014-04-22 10:17:37 -0700405 }
406 });
407 },
408 Remove: function () {
409 $.ajax({
410 url: '/tenantaddorremsliver/',
411 dataType: 'json',
412 data: {
413 count: parseInt($("#numOfSlivers").val()),
414 slice: $("#tenantSliceDropDown").val(),
415 actionToDo: "rem",
416 csrfmiddlewaretoken: "{{ csrf_token }}", // < here
417 state: "inactive"
418 },
419 type: 'POST',
420 beforeSend: function () {
421 if (!$("#numOfSlivers").val()) {
422 $("#basic-tooltip").css("display", "block");
423 return false;
424 } else {
425 return true;
426 }
427 },
Scott Baker168b7412014-05-16 14:25:41 -0700428 success: function () {
429$("#dialog-form").dialog("close");
430location.reload();
431
Scott Bakeredf2f672014-04-22 10:17:37 -0700432 }
433 });
Scott Baker537d8232014-04-08 23:40:56 -0700434 }
435 }
436 });
437 $("#dialog-form").dialog("open");
438 });
Scott Bakeredf2f672014-04-22 10:17:37 -0700439 $("#create-slice-btn").unbind().click(function () {
Scott Bakeredf2f672014-04-22 10:17:37 -0700440 $("#new-service-class").empty();
441 $("#new-image").empty();
442 $("#mount-data-sets").empty();
443 $("#new-network").empty();
Scott Baker537d8232014-04-08 23:40:56 -0700444 for (row in serviceLevelData) {
445 $("#new-service-class").append("<option>" + serviceLevelData[row]['serviceClass'] + "</option>");
446 }
447 for (row in imageData) {
448 $("#new-image").append("<option>" + imageData[row]['Image'] + "</option>");
449 }
Scott Bakeredf2f672014-04-22 10:17:37 -0700450 for (row in dataSet) {
451 $("#mount-data-sets").append("<option>" + dataSet[row]['DataSet'] + "</option>");
452 }
Scott Baker6253dfc2014-04-14 09:29:30 -0700453 var nameOfSlice = $("#new-slice-name").val();
Scott Baker537d8232014-04-08 23:40:56 -0700454 var nameOfServiceClass = $("#new-service-class").val();
455 var nameOfImage = $("#new-image").val();
456 $("#create-slice-form").dialog({
Scott Baker6253dfc2014-04-14 09:29:30 -0700457 autoOpen: false,
Scott Bakeredf2f672014-04-22 10:17:37 -0700458 height: 400,
459 width: 400,
Scott Baker6253dfc2014-04-14 09:29:30 -0700460 modal: true,
Scott Bakeredf2f672014-04-22 10:17:37 -0700461 dialogClass: "tenantDialog",
Scott Baker6253dfc2014-04-14 09:29:30 -0700462 buttons: {
463 "Submit": function () {
464 $.ajax({
465 url: '/createnewslice/',
466 dataType: 'json',
467 data: {
468 sliceName: $("#new-slice-name").val(),
469 serviceClass: nameOfServiceClass,
Scott Bakeredf2f672014-04-22 10:17:37 -0700470 imageName: $("#new-image").val(),
Scott Baker9d9650d2014-05-23 11:50:54 -0700471 network: $("#new-network").val(),
472 privateVolume: $("#private-vol").is(":checked"),
Scott Bakeredf2f672014-04-22 10:17:37 -0700473 mountDataSets: $("#mount-data-sets").val(),
Scott Baker6253dfc2014-04-14 09:29:30 -0700474 actionToDo: "add",
475 csrfmiddlewaretoken: "{{ csrf_token }}", // < here
476 state: "inactive"
477 },
Scott Bakeredf2f672014-04-22 10:17:37 -0700478 async: false,
Scott Baker6253dfc2014-04-14 09:29:30 -0700479 type: 'POST',
480 beforeSend: function () {
481 if (!$("#new-slice-name").val()) {
482 $("#tooltip").css("display", "block");
483 return false;
484 } else {
485 return true;
486 }
487 },
Scott Baker0486e172014-06-01 20:30:30 -0700488 success: function () {
Scott Baker6253dfc2014-04-14 09:29:30 -0700489 location.reload();
490 }
491 });
Scott Bakeredf2f672014-04-22 10:17:37 -0700492 $.ajax({
493 url: '/tenantaddorremsliver/',
494 dataType: 'json',
495 data: {
496 count: parseInt($("#number-of-slivers").val()),
497 slice: $("#new-slice-name").val(),
498 actionToDo: "add",
499 csrfmiddlewaretoken: "{{ csrf_token }}", // < here
500 state: "inactive"
501 },
502 async: false,
503 type: 'POST',
Scott Baker0486e172014-06-01 20:30:30 -0700504 success: function () {
Scott Bakeredf2f672014-04-22 10:17:37 -0700505 location.reload();
506 }
507 });
508
Scott Baker6253dfc2014-04-14 09:29:30 -0700509 },
510 Cancel: function () {
511 $(this).dialog("close");
Scott Baker537d8232014-04-08 23:40:56 -0700512 }
Scott Baker6253dfc2014-04-14 09:29:30 -0700513 }
514 });
515 $("#create-slice-form").dialog("open");
Scott Baker537d8232014-04-08 23:40:56 -0700516 });
Scott Bakeredf2f672014-04-22 10:17:37 -0700517 $("#delete-slice-btn").unbind().click(function () {
Scott Bakeredf2f672014-04-22 10:17:37 -0700518 $("#delete-slice").empty();
519 for (row in rows) {
520 $("#delete-slice").append("<option>" + rows[row]['sliceName'] + "</option>");
521 }
522 $("#delete-slice-form").dialog({
523 autoOpen: false,
524 height: 200,
525 width: 350,
526 modal: true,
527 dialogClass: "tenantDialog",
528 buttons: {
529 "Delete": function () {
530 $.ajax({
531 url: '/tenantdeleteslice/',
532 dataType: 'json',
533 data: {
534 sliceName: $("#delete-slice").val(),
535 csrfmiddlewaretoken: "{{ csrf_token }}", // < here
536 state: "inactive"
537 },
538 type: 'POST',
Scott Baker0486e172014-06-01 20:30:30 -0700539 success: function () {
Scott Bakeredf2f672014-04-22 10:17:37 -0700540 location.reload();
Scott Baker0486e172014-06-01 20:30:30 -0700541 },
542 error:function (xhr, textStatus, thrownError){
543 errorDialog("Error:", textStatus + " " + xhr.responseText);
544 }
Scott Bakeredf2f672014-04-22 10:17:37 -0700545 });
546 },
547 Cancel: function () {
548 $(this).dialog("close");
549 }
550 }
551 });
552 $("#delete-slice-form").dialog("open");
553 });
Scott Baker537d8232014-04-08 23:40:56 -0700554 }
Scott Bakeredf2f672014-04-22 10:17:37 -0700555
556
557 function initTenant() {
558 jQuery.ajax({
559 url: '/tenantview',
560 dataType: 'json',
561 success: function (data) {
Scott Baker168b7412014-05-16 14:25:41 -0700562 var rows = data['userSliceInfo']['rows'];
563 var imageData = data['image']['rows'];
564 //var networkData = data['network']['rows'];
565 var serviceLevelData = data['sliceServiceClass']['rows'];
566 var siteRows = data['sites']['rows'];
567 var dataSet = data['mountDataSets']['rows'];
568 UserSliceTable(rows,imageData,serviceLevelData,siteRows,dataSet);
569 if(!(data['publicKey'])){
570 $(".public-key-warning").css("display","block");
571 }
Scott Bakeredf2f672014-04-22 10:17:37 -0700572 var value = $("#tenantSliceDropDown").val();
Scott Baker168b7412014-05-16 14:25:41 -0700573 checkForBasicAdvView(value,rows,imageData,serviceLevelData,siteRows,dataSet);
Scott Bakeredf2f672014-04-22 10:17:37 -0700574 $("#tooltip").css("display", "none");
575 $("#basic-tooltip").css("display", "none");
576 $("#adv-tooltip").css("display", "none");
577 },
578 complete: function () {}
579 });
Scott Baker537d8232014-04-08 23:40:56 -0700580 }
Scott Bakeredf2f672014-04-22 10:17:37 -0700581
Scott Baker537d8232014-04-08 23:40:56 -0700582 initTenant();
583});
584</script>
585
586</html>