sheercms
Version:
Sheer Cliff CMS is a simple and powerful content management system (CMS) for Node JS.
84 lines (74 loc) • 2.38 kB
JavaScript
/*
Angular Service: Stat
*/
app.service('StatService', function($q, $http, $upload) {
var self = this;
self.getSystemStats = function(role) {
var d = $q.defer();
$http({ url:"/cms/stats/get", method: 'get', params: { }}).success(function(data) {
d.resolve(data);
}).error(function(data, status) {
d.reject(data);
});
return d.promise;
};
self.backupDatabase = function() {
var d = $q.defer();
$http.post("/cms/stats/backup", {}).success(function(data) {
d.resolve(data);
}).error(function(data, status) {
d.reject(data);
});
return d.promise;
};
self.deleteBackup = function(name) {
var d = $q.defer();
$http.post("/cms/stats/deleteBackup", {name: name}).success(function(data) {
d.resolve(data);
}).error(function(data, status) {
d.reject(data);
});
return d.promise;
};
self.restoreBackup = function(name) {
var d = $q.defer();
$http.post("/cms/stats/restoreBackup", {name: name}).success(function(data) {
d.resolve(data);
}).error(function(data, status) {
d.reject(data);
});
return d.promise;
};
/*
onProgress: (loaded, total)
onError: (message)
*/
self.uploadBackup = function(file, onProgress, onError) {
var d = $q.defer();
console.log("Uploading backup file: " + file.name);
$upload.upload({
url: '/cms/stats/uploadBackup',
method: 'POST',
data: { },
file: file
}).progress(function(evt) {
if (onProgress)
onProgress(evt.loaded, evt.total);
}).success(function(data, status, headers, config) {
if (data && data.success !== true) {
if (onError)
onError(data.message);
d.resolve({success: false, message: data.message});
}
else if (data) {
d.resolve({success: true, message: data.message, backups: data.backups});
}
else {
d.reject("No data returned in response.");
}
}).error(function(error) {
d.reject(error);
});
return d.promise;
};
});