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 this.user = localStorage.getItem('user');
114 login: function(fn) {
115 $.post("/rest/user/",{'filters':{'user_hrn':'$user_hrn'}}, function( data ) {
116 myslice.user = new user(data[0]);
117 localStorage.setItem('user', JSON.stringify(myslice.user));
121 getSlices: function(name) {
125 refreshUser: function() {
131 //$('div#loading').show();
134 //setTimeout(function(){
135 //$('div#loading').hide();
136 //window.location.href = '/resources/' + this.slice + '?message=true';
141 $.post("/rest/slice/", { 'fields': ['resource','slice_hrn'], 'filters': { 'slice_hrn' : this.slice } }, function(data) {
146 if ('resource' in data[0]) {
147 $.each(data[0].resource, function(idx, r) {
148 resources.push(r.urn);
152 console.log(myslice.pending);
153 console.log(resources);
154 $.each(resources.concat(myslice.pending), function(idx, v) {
158 $.post("/update/slice/", { 'filters': { 'slice_hrn' : myslice.slice }, 'params' : update }, function(data) {
162 console.log(this.slice);
170 // var Reflector = function(obj) {
171 // this.getProperties = function() {
172 // var properties = [];
173 // for (var prop in obj) {
174 // if (typeof obj[prop] != 'function') {
175 // properties.push(prop);
176 // console.log("prop: " + prop);
178 // console.log("func: " + prop);
181 // return properties;
184 // var reflector = new Reflector(myslice.slices[0].resources.pending);
185 // reflector.getProperties();
188 $(document).ready(function() {
189 //console.log(myslice.user().slices);
191 // $.post("/rest/user/",{'filters':{'user_hrn':'$user_hrn'}}, function(data) {
192 // myslice.user = new user(data[0]);
193 // console.log(myslice.user.slices);
194 // myslice.user.list();
196 // }).fail(function() {
197 // throw "error retreiving user data";
199 // Put the object into storage
200 //localStorage.setItem('testObject', JSON.stringify(testObject));
202 // Retrieve the object from storage
208 // add a resource to pending
210 //myslice.user.slice('ple.upmc.myslicedemo').resources.pending.add(resource);