4be4e0fe1c038d5d17afc27ac67626814396e421
[plstackapi.git] / planetstack / core / xoslib / static / js / xosDeveloper_datatables.js
1 /* This is an example that uses xoslib + datatables to display the developer
2 \r   view.
3 \r
4 \r   For an example that uses xoslib + marionette, see xosDeveloper.js
5 \r*/
6 \r
7 \rfunction updateSliceTable(data) {
8 \r    $('#developerView').html( '<table cellpadding="0" cellspacing="0" border="0" class="display" id="dynamicusersliceinfo"></table>' );
9     var actualEntries = [];
10
11     for (rowkey in data.models) {
12         row = data.models[rowkey];
13         slicename = row.get("name");
14         sliceid = row.get("id");
15         role = row.get("sliceInfo").roles[0];
16         slivercount = row.get("sliceInfo").sliverCount;
17         sitecount = row.get("sliceInfo").siteCount;
18         backendHtml = row.get("backendHtml")
19
20         if (! role) {
21             continue;
22         }
23
24         actualEntries.push([backendHtml + ' <a href="/admin/core/slice/' + sliceid + '">' + slicename + '</a>',
25                             role, slivercount, sitecount]);
26     }
27     oTable = $('#dynamicusersliceinfo').dataTable( {
28         "bJQueryUI": true,
29         "aaData":  actualEntries ,
30         "bStateSave": true,
31         "aoColumns": [
32             { "sTitle": "Slice" },
33             { "sTitle": "Privilege" , sClass: "alignCenter"},
34             { "sTitle": "Number of Slivers" , sClass: "alignCenter"},
35             { "sTitle": "Number of Sites" , sClass: "alignCenter"},
36         ]
37     } );
38 }
39
40 $(document).ready(function(){
41     xos.slicesPlus.on("change", function() { /*console.log("change");*/ updateSliceTable(xos.slicesPlus); });
42     xos.slicesPlus.on("remove", function() { /*console.log("sort");*/ updateSliceTable(xos.slicesPlus); });
43     xos.slicesPlus.on("sort", function() { /*console.log("sort");*/ updateSliceTable(xos.slicesPlus); });
44
45     xos.slicesPlus.startPolling();
46 });
47