Files
intranet/public/js/admin.js
2020-12-01 17:23:13 -03:00

81 lines
2.6 KiB
JavaScript

$(document).ready(function() {
$('#databases').submit(function(e) {
e.preventDefault();
var db = $("[name='database']").val();
var models = [];
var namespaces = [];
$.post('?p=admin&action=listModels', {"database": db}).done(function(data) {
//console.debug(data);
var info = $.parseJSON(data);
//console.debug(info.models);
models = info.models;
//console.debug(models);
$.post('?p=admin&action=listNamespaces').done(function(data) {
//console.debug(data);
info = $.parseJSON(data);
//console.debug(info.models);
namespaces = info.namespaces;
//console.debug(namespaces);
$.each(models, function(i, elem) {
var div = $('<div></div>').attr('class', 'row');
div.append($('<div></div>').attr('class', 'col-md-2').html(elem.model));
var div2 = $('<div></div>').attr('class', 'row');
$.each(namespaces, function(j, ns) {
div2.append($('<div></div>').attr('class', 'col-md-3').append($('<span></span>').attr('class', 'ns').attr('data-table', elem.table).attr('data-ns', ns).html(ns)));
});
div.append($('<div></div>').attr('class', 'col-md-9').append(div2));
div.append($('<div></div>').attr('class', 'col-md-1 remove').append($('<span></span>').attr('class', 'glyphicon glyphicon-remove')));
$('#results').append(div);
});
$('.ns').css('cursor', 'pointer');
$('.remove').css('cursor', 'pointer');
$('.ns').mouseover(function(e) {
$(this).parent().addClass('bg-success');
$(this).parent().parent().parent().parent().addClass('bg-warning');
}).mouseout(function(e) {
$(this).parent().removeClass('bg-success');
$(this).parent().parent().parent().parent().removeClass('bg-warning');
});
$('.remove').mouseover(function(e) {
$(this).parent().addClass('bg-danger');
}).mouseout(function(e) {
$(this).parent().removeClass('bg-danger');
});
$('.ns').click(function(e) {
var table = $(this).attr('data-table');
var ns = $(this).attr('data-ns');
execute(table, ns);
});
$('.remove').click(function(e) {
$(this).parent().remove();
});
});
});
return false;
});
});
function execute(table, ns) {
console.debug(table, ns);
var db = $("[name='database']").val();
$.post('?p=admin&action=createModel', {"table": table, "namespace": ns, "database": db}).done(function(data) {
console.debug(data);
var info = $.parseJSON(data);
console.debug(info);
if (info.result) {
$(".ns[data-table='" + table + "']").parent().parent().parent().parent().remove();
} else {
alert('Error');
}
});
}