X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=portal%2Fstatic%2Fjs%2Fmyslice.js;h=7038e53edc6a4cdedf8c4a13baf4daf39b7cb133;hb=7ae0c099d60e417a77fd8f5fcb8278f087a14d84;hp=bf6401687737bec5964de2bfb2015411b089891c;hpb=d74c083ca8390ce0812d730bc57ab95728013baf;p=unfold.git diff --git a/portal/static/js/myslice.js b/portal/static/js/myslice.js index bf640168..7038e53e 100644 --- a/portal/static/js/myslice.js +++ b/portal/static/js/myslice.js @@ -2,48 +2,143 @@ * 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(); @@ -80,11 +175,46 @@ var myslice = { }; + +/* 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); +