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 = JSON.parse(localStorage.getItem('user'));
114 login: function(fn) {
115 user = localStorage.getItem('user');
116 if($.isEmptyObject(user)){
117 $.post("/rest/user/",{'filters':{'user_hrn':'$user_hrn'}}, function( data ) {
118 //myslice.user = new user(data[0]);
119 localStorage.setItem('user', JSON.stringify(data[0]));
124 getSlices: function(name) {
128 refreshUser: function() {
134 //$('div#loading').show();
137 //setTimeout(function(){
138 //$('div#loading').hide();
139 //window.location.href = '/resources/' + this.slice + '?message=true';
144 $.post("/rest/slice/", { 'fields': ['resource','slice_hrn'], 'filters': { 'slice_hrn' : this.slice } }, function(data) {
149 if ('resource' in data[0]) {
150 $.each(data[0].resource, function(idx, r) {
151 resources.push(r.urn);
155 console.log(myslice.pending);
156 console.log(resources);
157 $.each(resources.concat(myslice.pending), function(idx, v) {
161 $.post("/update/slice/", { 'filters': { 'slice_hrn' : myslice.slice }, 'params' : update }, function(data) {
165 console.log(this.slice);
173 // var Reflector = function(obj) {
174 // this.getProperties = function() {
175 // var properties = [];
176 // for (var prop in obj) {
177 // if (typeof obj[prop] != 'function') {
178 // properties.push(prop);
179 // console.log("prop: " + prop);
181 // console.log("func: " + prop);
184 // return properties;
187 // var reflector = new Reflector(myslice.slices[0].resources.pending);
188 // reflector.getProperties();
191 $(document).ready(function() {
192 //console.log(myslice.user().slices);
194 // $.post("/rest/user/",{'filters':{'user_hrn':'$user_hrn'}}, function(data) {
195 // myslice.user = new user(data[0]);
196 // console.log(myslice.user.slices);
197 // myslice.user.list();
199 // }).fail(function() {
200 // throw "error retreiving user data";
202 // Put the object into storage
203 //localStorage.setItem('testObject', JSON.stringify(testObject));
205 // Retrieve the object from storage
211 // add a resource to pending
213 //myslice.user.slice('ple.upmc.myslicedemo').resources.pending.add(resource);