/**
* Eventos inicializados após renderização da página
* @todo necessário verificar tradução das mensagens de texto
*/
$(document).ready(function(){
/**
* Remove o COOKIE com informação da imagem de BACKGROUND
*/
$.cookie("AdminIntensoBackground", null );
/**
* Animação AJAX
*/
$( document ).ajaxStart( function() {
$( '#ajaxLoading' ).fadeIn();
$( 'body' ).css( 'overflow', 'hidden' );
})
.ajaxStop( function() {
$( '#ajaxLoading' ).fadeOut();
$( 'body' ).css( 'overflow', 'auto' );
});
/**
* Modal de confirmação de exclusão de item
*/
$( "#System_Excluir" ).dialog({
autoOpen: false,
height: 190,
width: 350,
modal: true,
closeText: 'Fechar',
buttons: {
"Excluir" : function(){
$( this ).dialog( "close" );
var params = $( this ).data( 'params' );
$.ajax(
{
type: "POST",
url: params.url,
data: params,
cache: false,
async: false,
success: function( data )
{
if ( data.status == 'error' )
{
var msg = '';
switch( data.code )
{
case '23503':
msg = 'Ítem não pode ser excluído porque contem dados relacionados!';
break;
default:
msg = 'Erro desconhecido!';
break;
}
System.Flash.show( 'Erro', msg );
return false;
}
/**
* Verifica quantidade de colunas e quantos elementos ainda restam a listar após a exclusão
*/
var _tbody = $( '#item_' + params.id ).parent();
var _thead = $( 'thead', _tbody.parent() );
var _colspan = _thead.children().first().children().length; // Qtde colunas
$( '#item_' + params.id ).remove(); // Remove o item da Grid
if ( _tbody.children().length < 1 )
{ // Se for o último registro a ser excluído
_tbody.append('
| NENHUM REGISTRO ENCONTRADO |
');
}
System.Flash.show( 'Sucesso', 'Item excluído com sucesso!' );
},
error: function( data )
{
System.Flash.show( 'Erro', 'Erro na exclusão do item!' );
},
complete: function( data )
{
/**
* Caso uma função de CallBack tenha sido definida, invoca-a neste ponto e passa como parâmetros:
* - Os próprios parâmetros já enviados na requisição AJAX
* - O "response" devolvido pelo servidor como resposta à requisição AJAX
*/
if ( params.callback )
params.callback( params, data );
}
}
);
},
"Cancelar" : function(){
$( this ).dialog( "close" );
}
},
show: { effect: "fade", duration: 500 },
hide: { effect: "fade", duration: 500 }
});
/**
* Abre a MODAL com o formulário para troca de Senha
*/
$( "#trocarPropriaSenha" ).dialog({
autoOpen: false,
height: 250,
width: 350,
modal: true,
buttons: {
"Salvar" : function(){
// Realiza a validação dos campos
var validation = function(){
/**
* Verifica se a senha informa é valida
* - Se as 2 senhas conferem entre si
* - Se possui o mínimo de caracteres (6)
* - Se possui o máximo de caracteres (10)
* @return boolean|string
*/
var min = 6; // Mínimo de caracteres para a senha
var max = 10; // Máximo de caracteres para a senha
var senhaAtual = $( '#troca_propria_senha_te_senha_atual' ).val();
var senhaNova = $( '#troca_propria_senha_te_senha_nova' ).val();
var senhaConfirma = $( '#troca_propria_senha_te_senha_nova_confirma' ).val();
if ( senhaAtual.length < min || senhaAtual.length > max ) return 'Senha atual inválida';
if ( senhaNova != senhaConfirma ) return 'Senhas não conferem';
if ( senhaNova.length < min ) return 'Nova Senha não pode conter menos que ' +min+ ' caracteres';
if ( senhaNova.length > max ) return 'Nova Senha não pode conter mais que ' +max+ ' caracteres';
return true;
};
var validation_result = validation();
if( validation_result === true )
{
var params = {
'senha_nova' : $( '#troca_propria_senha_te_senha_nova' ).val(),
'senha_atual': $( '#troca_propria_senha_te_senha_atual' ).val()
};
$.ajax(
{
type: "POST",
url: $( this ).data( 'params' ).url,
cache: false,
async: false,
success: function( data )
{
System.Flash.show( 'Sucesso', 'Senha alterada com sucesso!' );
},
error: function( data )
{
var response = JSON.parse(data.responseText);
System.Flash.show( 'Erro', 'Erro na solicitação: ' + response.status );
},
data: params
}
);
}
else
{
System.Flash.show( 'Erro', validation_result );
}
$( this ).dialog( "close" );
},
"Cancelar" : function(){
$( this ).dialog( "close" );
}
},
show: { effect: "fade", duration: 500 },
hide: { effect: "fade", duration: 500 },
close: function( event, ui ){
// Limpa os campos do formulário
$( "#troca_propria_senha_te_senha_atual" ).val( '' );
$( "#troca_propria_senha_te_senha_nova" ).val( '' );
$( "#troca_propria_senha_te_senha_nova_confirma" ).val( '' );
}
});
/**
* Ativa a ABA correta, caso esta seja passada via URL
*/
if ( window.location.hash != '' && window.location.hash != undefined )
{
var _activeTab = window.location.hash;
_activeTab && $('ul.nav a[href="' + _activeTab + '"]').tab('show');
}
/**
* Configura a propriedade css Z-INDEX do MODAL
*/
$.modal.defaults.zIndex = 1030;
$.modal.defaults.showSpinner = false;
/**
* Listeners do sistema
*/
System.Grid.excluir(); // Inicializa o LISTENER para os botões-padrão de exclusão de itens
System.Form.reset(); // Inicializa o LISTENER para os botões (ou input) type=reset
System.Menu.changeOwnPass(); // Inicializa o LISTENER para funcionalidade de troca de senha
/**
* Adiciona o calendário aos campos de data (contendo a classe datepicker_on)
* e já configura a máscara no formato xx/xx/xxxx
*/
$(".datepicker_on").datepicker({ altFormat: "dd/mm/yy" }).mask('99/99/9999');
/*$('#datatable').dataTable( {
"iDisplayLength": 100,
"iDisplayStart": 1,
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"bDestroy": true
} );*/
});