X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=portal%2Fstatic%2Fjs%2Fmyslice.js;h=d9593af78651c3ff2ca3d05dee5a6fc336907dfa;hb=9c22e578ac9d3e3d544fe87191790915620bef26;hp=bf6401687737bec5964de2bfb2015411b089891c;hpb=eedc5fc666af9dfaa82660ba4da7107304188179;p=unfold.git diff --git a/portal/static/js/myslice.js b/portal/static/js/myslice.js index bf640168..d9593af7 100644 --- a/portal/static/js/myslice.js +++ b/portal/static/js/myslice.js @@ -2,48 +2,139 @@ * MySlice Class */ -var myslice = { - slice: null, - pending: [], - reserved: [], - - add: function(resource) { - if (!this.has(resource)) { - this.pending.push(resource); - this.save(); - } - }, - - del: function(resource) { - if (this.has(resource)) { - this.pending.splice(index, 1); - } - }, +function list() { + this.elements = []; +} + +list.prototype.add = function(element) { + if (!this.has(element)) { + this.elements.push(element); + } +}; - has: function(resource) { - index = jQuery.inArray( resource, this.pending ); - if (index != -1) { - return true; - } - return false; - }, +list.prototype.del = function(element) { + if (this.has(element)) { + this.elements.splice(index, 1); + } +}; - count: function() { - return this.pending.length; - }, +list.prototype.has = function(element) { + index = $.inArray( element, this.elements ); + if (index != -1) { + return true; + } + return false; +}; - save: function() { - localStorage.setItem('pending', JSON.stringify(this.pending)); +list.prototype.count = function() { + return this.elements.length; +}; + + +/* + * resources, users, leases + */ + +function resources() { + this.pending = { + toremove: new list(), + toadd: new list(), + }; +}; + +function leases() { + this.pending = { + toremove: new list(), + toadd: new list(), + }; +}; + +function users() { + 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(); + +}; + + +/* + * User + */ +function user(user) { + this.user = user; + this.testbeds = new list(); + this.slices = new list(); + + for (i = 0; i < this.user.slices.length; i++) { + this.slices[this.user.slices[i]] = new slice(this.user.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: {}, + + user: function() { + if ($.isEmptyObject(this.user)) { + //this.login(function() { return this.user; }); + if(localStorage.getItem('user')!='undefined'){ + this.user = JSON.parse(localStorage.getItem('user')); + }else{ + return false; + } + } + return this.user; + }, + + login: function(fn) { + user = localStorage.getItem('user'); + if($.isEmptyObject(user)){ + $.post("/rest/user/",{'filters':{'user_hrn':'$user_hrn'}}, function( data ) { + //myslice.user = new user(data[0]); + localStorage.setItem('user', JSON.stringify(data[0])); + }); + } + }, + + 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 +171,48 @@ 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() { + //console.log(myslice.user().slices); + + // $.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); +