77 строки
1.3 KiB
JavaScript
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;
|
|
}
|
|
]
|
|
);
|