/*
* MySlice Class
*/
+function isFunction(functionToCheck) {
+ var getType = {};
+ return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
+}
function list() {
this.elements = [];
}
return this.user;
},
+ projects: {},
+
+ projects: function() {
+ if ($.isEmptyObject(this.projects)) {
+ //this.login(function() { return this.user; });
+ if(localStorage.getItem('projects')!='undefined'){
+ this.projects = JSON.parse(localStorage.getItem('projects'));
+ }else{
+ return false;
+ }
+ }
+ return this.projects;
+ },
+
loadSlices: function(slices) {
if (typeof(slices) == "undefined"){
// myslice.user is in LocalStorage
if(typeof(slices) != "undefined"){
/*
+ This allows progressive loading per AM platform
Launch queries to get the resources and leases in Manifold Cache
+ XXX platform:object
+ TODO support cache for prefixed objects
+ XXX Disabled until it's supported on Manifold side
*/
- $.post("/rest/resource/", function( data ) {
- });
- $.post("/rest/lease/", function( data ) {
- });
+ /*
+ $.post("/rest/platform/", function( data ) {
+ $.each(data, function(index, p) {
+ $.post("/rest/"+p.platform+":resource/", function( data ) {
+ });
+ $.post("/rest/"+p.platform+":lease/", function( data ) {
+ });
+ $.each( slices, function(i, val) {
+ // Launch a Query for each slice to get it in Manifold Cache
+ $.post("/rest/"+p.platform+":slice/", { 'filters': { 'slice_hrn' : val } }, function(data) {
+ });
+ });
- $.each( slices, function(i, val) {
- /*
- Launch a Query for each slice to get resources and leases in Manifold Cache
- */
- $.post("/rest/slice/", { 'filters': { 'slice_hrn' : val } }, function(data) {
});
});
+ */
}
},
if($.isEmptyObject(user)){
// REGISTRY ONLY TO BE REMOVED WITH MANIFOLD-V2
$.post("/rest/myslice:user/",{'filters':{'user_hrn':'$user_hrn'}}, function( data ) {
- //myslice.user = new user(data[0]);
- localStorage.setItem('user', JSON.stringify(data[0]));
- myslice.loadSlices(data[0].slices);
+ if (data.length > 0) {
+ localStorage.setItem('user', JSON.stringify(data[0]));
+ projects = [];
+ $.each(data[0].pi_authorities, function(idx, auth) {
+ // PI on projects
+ if(auth.split('.').length>2){
+ if($.inArray(auth,projects) == -1){
+ projects.push(auth);
+ }
+ }else if (auth.split('.').length>1){
+ // PI on authorities
+ // What are the projects under this authority?
+ $.post("/rest/myslice:authority/",{'fields':['authority_hrn'],'filters':{'authority_hrn':'CONTAINS'+auth}}, function( data ) {
+ $.each(data, function(idx, project) {
+ console.log(project.authority_hrn);
+ if($.inArray(project.authority_hrn,projects) == -1){
+ projects.push(project.authority_hrn);
+ }
+ });
+ });
+ }else{
+ console.log("admin account - we don't list all from root");
+ }
+ });
+ localStorage.setItem('projects', JSON.stringify(projects));
+ myslice.loadSlices(data[0].slices);
+ if(isFunction(fn)){
+ fn();
+ }
+ }
});
+ }else{
+ if(isFunction(fn)){
+ fn();
+ }
}
+
},
+
+
getSlices: function(name) {
},