zettapi_client
Version:
Admin panel and client-side CRUD operations in angular to use with zettapi_server rest api to get started quickly in any CMS project.
46 lines (42 loc) • 1.64 kB
JavaScript
app.service('$list', function ($http, mySocket, zapi) {
this.getMetadata = function (blockUI, callback) {
blockUI.start("A obter listagens disponíveis...");
$http.get(zapi.serverUrl + '/api/list/getall').then(function (response) {
response.data.forEach(function (list) {
list.values = {};
});
callback(response.data);
}).catch(function (response) {
swal("Atenção", "Não foi possível obter as listagens disponíveis, por favor actualize a página", "warning");
callback([]);
}).finally(function () {
blockUI.stop();
});
};
this.get = function (blockUI, list, dbs, channel, callback) {
if (dbs.length === 0) return swal("Atenção", "Selecione pelo menos uma base de dados", "warning");
mySocket.on(channel, listDataHandler(blockUI, callback));
blockUI.start("A obter " + list.caption);
$http.get(zapi.serverUrl + '/api/list/values/' + list.name, { params: { query: list.values, dbs: dbs } }).then(function (response) {
//data handled through websockets
}).catch(function (response) {
blockUI.stop();
swal("Atenção", response.data, "warning");
callback([]);
});
};
function listDataHandler(blockUI, callback) {
return function (data) {
if (typeof data.ok !== 'undefined') {
blockUI.stop();
callback(data.ok);
} else if (typeof data.error !== 'undefined') {
blockUI.stop();
swal("Ocorreu um erro", data.error, "error");
callback([]);
} else if (typeof data.message !== 'undefined') {
blockUI.message(data.message);
}
};
}
});