9 list.prototype.add = function(element) {
10 if (!this.has(element)) {
11 this.elements.push(element);
15 list.prototype.del = function(element) {
16 if (this.has(element)) {
17 this.elements.splice(index, 1);
21 list.prototype.has = function(element) {
22 index = $.inArray( element, this.elements );
29 list.prototype.count = function() {
30 return this.elements.length;
35 * resources, users, leases
38 function resources() {
62 function slice(name) {
64 this.resources = new resources();
65 this.users = new users();
66 this.leases = new leases();
76 this.testbeds = new list();
77 this.slices = new list();
79 for (i = 0; i < this.user.slices.length; i++) {
80 this.slices[this.user.slices[i]] = new slice(this.user.slices[i]);
84 user.prototype.slice = function(name) {
85 return this.slices[name];
88 user.prototype.list = function() {
89 for (s in this.slices) {
91 if (typeof o != 'function') {
107 if ($.isEmptyObject(this.user)) {
108 //this.login(function() { return this.user; });
109 if(localStorage.getItem('user')!='undefined'){
110 this.user = JSON.parse(localStorage.getItem('user'));
118 login: function(fn) {
119 user = localStorage.getItem('user');
120 if($.isEmptyObject(user)){
121 $.post("/rest/user/",{'filters':{'user_hrn':'$user_hrn'}}, function( data ) {
122 //myslice.user = new user(data[0]);
123 localStorage.setItem('user', JSON.stringify(data[0]));
128 getSlices: function(name) {
132 refreshUser: function() {
138 //$('div#loading').show();
141 //setTimeout(function(){
142 //$('div#loading').hide();
143 //window.location.href = '/resources/' + this.slice + '?message=true';
148 $.post("/rest/slice/", { 'fields': ['resource','slice_hrn'], 'filters': { 'slice_hrn' : this.slice } }, function(data) {
153 if ('resource' in data[0]) {
154 $.each(data[0].resource, function(idx, r) {
155 resources.push(r.urn);
159 console.log(myslice.pending);
160 console.log(resources);
161 $.each(resources.concat(myslice.pending), function(idx, v) {
165 $.post("/update/slice/", { 'filters': { 'slice_hrn' : myslice.slice }, 'params' : update }, function(data) {
169 console.log(this.slice);
177 // var Reflector = function(obj) {
178 // this.getProperties = function() {
179 // var properties = [];
180 // for (var prop in obj) {
181 // if (typeof obj[prop] != 'function') {
182 // properties.push(prop);
183 // console.log("prop: " + prop);
185 // console.log("func: " + prop);
188 // return properties;
191 // var reflector = new Reflector(myslice.slices[0].resources.pending);
192 // reflector.getProperties();
195 $(document).ready(function() {
196 //console.log(myslice.user().slices);
198 // $.post("/rest/user/",{'filters':{'user_hrn':'$user_hrn'}}, function(data) {
199 // myslice.user = new user(data[0]);
200 // console.log(myslice.user.slices);
201 // myslice.user.list();
203 // }).fail(function() {
204 // throw "error retreiving user data";
206 // Put the object into storage
207 //localStorage.setItem('testObject', JSON.stringify(testObject));
209 // Retrieve the object from storage
215 // add a resource to pending
217 //myslice.user.slice('ple.upmc.myslicedemo').resources.pending.add(resource);