* MySlice Class
*/
-var myslice = {
- slice: null,
- pending: [],
- reserved: [],
-
- add: function(resource) {
- if (!this.has(resource)) {
- this.pending.push(resource);
- this.save();
- }
- },
+function list() {
+ this.elements = [];
+}
+
+list.prototype.save = function() {
+ for (var prop in this) {
+ if (typeof this[prop] != 'function') {
+ console.log("prop: " + prop);
+ } else {
+ console.log("func: " + prop);
+ }
+ }
+ //localStorage.setItem(name, JSON.stringify(value));
+};
+
+list.prototype.load = function(name) {
+ this.pending = JSON.parse(localStorage.getItem(name));
+ if (!this.pending) {
+ this.pending = [];
+ }
+};
+
+list.prototype.add = function(element) {
+ if (!this.has(element)) {
+ this.elements.push(element);
+ }
+};
- del: function(resource) {
- if (this.has(resource)) {
- this.pending.splice(index, 1);
- }
- },
+list.prototype.del = function(element) {
+ if (this.has(element)) {
+ this.elements.splice(index, 1);
+ }
+};
- has: function(resource) {
- index = jQuery.inArray( resource, this.pending );
- if (index != -1) {
- return true;
- }
- return false;
- },
+list.prototype.has = function(element) {
+ index = $.inArray( element, this.elements );
+ if (index != -1) {
+ return true;
+ }
+ return false;
+};
- count: function() {
- return this.pending.length;
- },
+list.prototype.count = function() {
+ return this.elements.length;
+};
+
+
+/*
+ * resources, users, leases
+ */
+
+function resources() {
+ this.pending = {
+ toremove: new list(),
+ toadd: new list(),
+ };
+};
+
+function users() {
+ this.pending = {
+ toremove: new list(),
+ toadd: new list(),
+ };
+};
+
+function leases() {
+ this.pending = {
+ toremove: new list(),
+ toadd: new list(),
+ };
+};
+
+/*
+ * Slice
+ */
+function slice(name) {
+ this.name = name;
+ this.resources = new resources();
+ this.users = new users();
+ this.leases = new leases();
+
+};
+slice.prototype.pending = function() {
+
+};
+slice.prototype.reserve = function() {
+
+};
+slice.prototype.unreserve = function() {
+
+};
+
+/*
+ * User
+ */
+function user(u) {
+ this.u = u;
+ this.testbeds = {};
+ this.slices = {};
+
+ for (i = 0; i < this.u.slices.length; i++) {
+ this.slices[this.u.slices[i]] = new slice(this.u.slices[i]);
+ }
+};
+
+user.prototype.slice = function(name) {
+ return this.slices[name];
+};
+
+user.prototype.list = function() {
+ for (s in this.slices) {
+ for (o in s) {
+ if (typeof o != 'function') {
+ console.log(o);
+ } else {
+ console.log("w "+o);
+ }
+ }
+ }
+};
+
+/*
+ * MySlice
+ */
+var myslice = {
+ user: {},
- save: function() {
- localStorage.setItem('pending', JSON.stringify(this.pending));
+ getSlices: function(name) {
+
},
- load: function() {
- this.pending = JSON.parse(localStorage.getItem('pending'));
- if (!this.pending) {
- this.pending = [];
- }
+ refreshUser: function() {
+
},
apply: function() {
+
//$('div#loading').show();
//this.pending = [];
//this.save();
};
+
+/* MySlice Init */
+
+// var Reflector = function(obj) {
+ // this.getProperties = function() {
+ // var properties = [];
+ // for (var prop in obj) {
+ // if (typeof obj[prop] != 'function') {
+ // properties.push(prop);
+ // console.log("prop: " + prop);
+ // } else {
+ // console.log("func: " + prop);
+ // }
+ // }
+ // return properties;
+ // };
+// };
+// var reflector = new Reflector(myslice.slices[0].resources.pending);
+// reflector.getProperties();
+
+
$(document).ready(function() {
+ // $.post("/rest/user/",{'filters':{'user_hrn':'$user_hrn'}}, function(data) {
+ // myslice.user = new user(data[0]);
+ // console.log(myslice.user.slices);
+ // myslice.user.list();
+//
+ // }).fail(function() {
+ // throw "error retreiving user data";
+ // });
// Put the object into storage
//localStorage.setItem('testObject', JSON.stringify(testObject));
// Retrieve the object from storage
- myslice.load();
+ //myslice.load();
});
+
+/* EXEMPLES */
+// add a resource to pending
+
+myslice.user.slice('ple.upmc.myslicedemo').resources.pending.add(resource);
+
{% extends "layout_wide.html" %}
{% block content %}
- <div class="col-md-2"></div>
- <div class="col-md-10">
- <div class="row">
- {% include theme|add:"_widget-slice-sections.html" %}
+<div class="wrapper">
+ <div class="row">
+ <div class="col-md-12">
+ {% include theme|add:"_widget-slice-sections.html" %}
+ </div>
+ </div>
+</div>
+<div class="container-fluid">
+ <div class="row">
+ <div class="col-md-2">
+ ll
</div>
- </div>
-
- <div class="col-md-2"></div>
- <div class="col-md-10">
- <br>
- <br>
- <div id="slice-tab-loading"><img src="{{ STATIC_URL }}img/loading.gif" alt="Loading Slices" /></div>
- <div id="slice-tab-loaded" style="display:none;">
- <table id="slice-tab">
- </table>
- </div>
- </div>
-
+ <div class="col-md-10">
+ <br>
+ <br>
+ <div id="slice-tab-loading"><img src="{{ STATIC_URL }}img/loading.gif" alt="Loading Slices" /></div>
+ <div id="slice-tab-loaded" style="display:none;">
+ <table id="slice-tab">
+ </table>
+ </div>
+ </div>
+ </div>
+</div>
<script>
$(document).ready(function() {
$.post("/rest/slice/",{'filters':{'slice_hrn':'{{slice}}'}}, function( data ) {
-<div class="col-md-8 slice-sections">
- <ul class="nav nav-pills nav-justified">
- <li {% if section == 'slice' %}class="active"{% endif %}><a href="/slice/{{ slice }}/">{{ slice }}</a></li>
- <li {% if section == 'testbeds' %}class="active"{% endif %}><a href="/testbeds/{{ slice }}/">Testbeds</a></li>
- <li {% if section == 'resources' %}class="active"{% endif %}><a href="/resources/{{ slice }}/">Resources</a></li>
- <li {% if section == 'users' %}class="active"{% endif %}><a href="/users/{{ slice }}/">Users</a></li>
- <li><a href="">Statistics</a></li>
- <li><a href="">Measurements</a></li>
- </ul>
-</div>
-<div class="col-md-4 slice-experiment">
- <a href="/portal/experiment"><button type="button" class="btn btn-default">Experiment</button></a>
-</div>
+<ul class="nav nav-tabs nav-sliceview">
+ <li class="active"><a href="/slice/{{ slice }}/"><img src="{{ STATIC_URL }}icons/slices-xs.png" alt="About MySlice" /> {{ slice }}</a></li>
+ <li><a href="/testbeds/{{ slice }}/">Testbeds</a></li>
+ <li><a href="/resources/{{ slice }}/">Resources</a></li>
+ <li><a href="/users/{{ slice }}/">Users</a></li>
+ <li><a href="">Statistics</a></li>
+ <li><a href="">Measurements</a></li>
+ <li><a href="/portal/experiment">Experiment</a></li>
+</ul>
+<script>
+ $(document).ready(function() {
+
+ });
+</script>