myadmin/js/block.js
2025-07-03 13:11:29 -03:00

269 lines
No EOL
7.8 KiB
JavaScript

/*!
* Block Page v1.0.0
* www.souza.inf.br/
* Copyright (c) 2021, Souza Consultória Tecnologica
*/
function blockPage(create, info, sec, target, message, color, type, size, message_spinner){
var color_spinner = '';
var color_alert = '';
var spinner = '';
var spinner_small = '';
var spinner_size = '';
var spinner_message = '';
/** Verifica se o tipo de spinner foi informado */
if(type === 'circle'){
spinner = 'border';
/** Verifica se o tamanho do spinner foi infromado */
if(size == 'sm'){// Samll => pequeno
spinner_small = 'spinner-border-sm';
}else{
spinner_size = 'style="width: 3rem; height: 3rem;"';
}
}else if(type === 'ball'){
spinner = 'grow';
/** Verifica se o tamanho do spinner foi infromado */
if(size == 'sm'){// Samll => pequeno
spinner_small = 'spinner-grow-sm';
}else{
spinner_size = 'style="width: 3rem; height: 3rem;"';
}
}else{//Spinner padrão
spinner = 'grow';
/** Verifica se o tamanho do spinner foi infromado */
if(size == 'sm'){// Samll => pequeno
spinner_small = 'spinner-grow-sm';
}else{
spinner_size = 'style="width: 3rem; height: 3rem;"';
}
}
/** Verifica se a cor foi informada */
if(!color){
color_spinner = 'text-primary';
color_alert = 'alert-primary';
}else{
switch(color) {
case 'blue':
color_spinner = 'text-primary';
color_alert = 'alert-primary';
break;
case 'grey':
color_spinner = 'text-secondary';
color_alert = 'alert-secondary';
break;
case 'green':
color_spinner = 'text-success';
color_alert = 'alert-success';
break;
case 'red':
color_spinner = 'text-danger';
color_alert = 'alert-danger';
break;
case 'yellow':
color_spinner = 'text-warning';
color_alert = 'alert-warning';
break;
case 'cyan':
color_spinner = 'text-info';
color_alert = 'alert-info';
break;
case 'white':
color_spinner = 'text-light';
color_alert = 'alert-light';
break;
case 'black':
color_spinner = 'text-dark';
color_alert = 'alert-dark';
break;
case 'random':
/** Temas disponiveis */
var a = ['primary', 'secondary', 'success', 'danger', 'warning', 'info', 'dark'];
/** Embaralha os temas */
var color_rand = shuffle(a);
/** Pega o primeiro item embaralhado */
color_spinner = 'text-'+color_rand[0];
/** Pega o primeiro item embaralhado */
color_alert = 'alert-'+color_rand[0];
break;
default:
color_spinner = 'text-primary';
color_alert = 'text-primary';
}
}
/** Verifica a ação a ser executada */
if(create === true){
/** Verifica se um alvo foi definido e se existe */
if($(target).length){
/** Verifica se existe mensagem a ser informada */
if(message){
/** Verifica se a mensagem possui spinner para exibir */
if(message_spinner === true){
spinner_message = '<div class="spinner-'+spinner+' '+color_spinner+' '+spinner_small+'" '+spinner_size+' role="status">';
spinner_message += ' <span class="sr-only">Loading...</span>';
spinner_message += '</div>';
}
/** Carrega a mensagem no algo informado */
var div = spinner_message;
div += '&nbsp;&nbsp;'+message;
}else{
/** Cria a div responsável em carregar o spinner+info */
var div = '<div class="spinner-'+spinner+' '+color_spinner+' '+spinner_small+'" '+spinner_size+' role="status">';
div += ' <span class="sr-only">Loading...</span>';
div += '</div>';
}
/** Adiciona o spinner ao target */
$(target).html(div);
}else{
/** Verifica se existe mensagem a ser informada */
if(message){
/** Verifica se a mensagem possui spinner para exibir */
if(message_spinner === true){
spinner_message = '<div class="spinner-'+spinner+' '+color_spinner+' '+spinner_small+'" '+spinner_size+' role="status">';
spinner_message += ' <span class="sr-only">Loading...</span>';
spinner_message += '</div>';
}
/** Cria a div responsável em carregar o spinner+info */
var div = '<div id="spinner-block">';
div += ' <div class="spinner-box animate slideIn">';
div += ' <div class="alert '+color_alert+'" role="alert">';
div += spinner_message;
div += ' ' + message;
div += ' </div>';
div += ' </div>';
div += ' <div class="blackout"></div>';//Background total na tela
div += '</div>';
}else{
/** Cria a div responsável em carregar o spinner+info */
var div = '<div id="spinner-block">';
div += ' <div class="spinner-box animate slideIn">';
div += ' <div class="spinner-'+spinner+' '+color_spinner+' '+spinner_small+'" '+spinner_size+' role="status">';
div += ' <span class="sr-only">Loading...</span>';
div += ' </div>';
div += ' <div class="spinner-txt">';
div += info;//Carrega a informação informada
div += ' </div>';
div += ' </div>';
div += ' <div class="blackout"></div>';//Background total na tela
div += '</div>';
}
/** Adiciona o spinner na tela */
$('body').append(div);
/** Posiciona o spinner no centro da tela */
$('div.spinner-box').css({
'margin-left': '-' + ( $('div.spinner-box').width()/2 ) + 'px'
});
}
/** Verifica se o tempo de execução foi definido */
if(parseInt(sec) > 0){
setTimeout(function() {
$('div').remove('#spinner-block');
}, sec);//Remove o item a partir dos segundos informados
}
}else{
$('div').remove('#spinner-block');
}
}
/** Embaralha os elementos de uma array */
shuffle = function(v){
for(var j, x, i = v.length; i; j = parseInt(Math.random() * i), x = v[--i], v[i] = v[j], v[j] = x);
return v;
};