wwt-web-client/dataproxy/Community.js

77 строки
1.3 KiB
JavaScript

wwt.app.factory(
'Community',
[
'$http',
'$q',
'$timeout',
'Util',
function ($http, $q, $timeout, util) {
var api = {
getRoot: getRoot,
getChildren: getChildren
};
var root,
rootFolders,
openCollectionsFolder;
function getRoot() {
var deferred = $q.defer();
initPromise.then(function (folders) {
rootFolders = folders;
$.each(folders, function(i,item) {
util.rewritePlaceUrls(item);
});
deferred.resolve(folders);
});
return deferred.promise;
}
function getChildren(obj) {
var deferred = $q.defer();
obj.childLoadCallback(function () {
var children = obj.get_children();
$.each(children, function (i, item) {
item.guid = obj.guid + '.' + (item.get_isFolder() ? item.get_name() : i);
util.rewritePlaceUrls(item);
});
deferred.resolve(transformData(children));
});
return deferred.promise;
}
var init = function () {
var deferred = $q.defer();
function tryInit() {
if (!wwt.wc) {
setTimeout(tryInit, 333);
return;
}
root = wwt.wc.createFolder();
root.loadFromUrl(wwt.communitiesUrlPrefix + '/Resource/Service/Payload', function () {
deferred.resolve(root.get_children());
});
}
tryInit();
return deferred.promise;
};
var initPromise = init();
return api;
}
]
);