Skip to content

Instantly share code, notes, and snippets.

@diogoalexsmachado
Last active November 6, 2018 11:02
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save diogoalexsmachado/3ebd14579b6d4f93bde83814dd92839d to your computer and use it in GitHub Desktop.
Save diogoalexsmachado/3ebd14579b6d4f93bde83814dd92839d to your computer and use it in GitHub Desktop.
# No inicio.jsp
<input type="hidden" id="controloAlteracoes" value="0">
# no acesso.js (chamado no inicio.jsp)
$("#controloAlteracoes").change(function () {
if ($(this).val() == 1) {
toastr.clear();
toastr["info"]("Existem informações não guardadas", "Atenção", {
"closeButton": true,
"debug": false,
"newestOnTop": false,
"progressBar": false,
"positionClass": "toast-bottom-right",
"preventDuplicates": true,
"onclick": null,
"showDuration": "0",
"hideDuration": "0",
"timeOut": "0",
"extendedTimeOut": "0",
"showEasing": "swing",
"hideEasing": "linear",
"showMethod": "fadeIn",
"hideMethod": "fadeOut",
"tapToDismiss": false
});
} else {
toastr.clear();
}
});
# dentro da ação do botão do menu
//verifica se há cenas por guardar
if ($("#controloAlteracoes").val() == 1) {
swal({
title: 'Atenção!',
text: 'Confirma que quer sair sem guardar?',
type: 'warning',
allowOutsideClick: false,
showConfirmButton: true,
showCancelButton: true,
confirmButtonClass: 'btn-info',
cancelButtonClass: 'btn-danger',
closeOnConfirm: true,
closeOnCancel: true,
confirmButtonText: 'Sim, confirmo',
cancelButtonText: 'Cancelar'
},
function (isConfirm) {
if (isConfirm) {
$("#controloAlteracoes").val(0).trigger("change");
//faz o pedido que ia fazer normalmente
postconteudo(funcao);
}
});
} else {
//faz o pedido que ia fazer normalmente
postconteudo(funcao);
}
# No JSP de onde queremos validar
<script>
$(".validate-unsaved").change(function() {
if ($("#controloAlteracoes").val() != 1) {
$("#controloAlteracoes").val(1).trigger("change");
}
});
$(".drop-unsaved").click(function() {
if ($("#controloAlteracoes").val() != 0) {
$("#controloAlteracoes").val(0).trigger("change");
}
});
</script>
# depois nos inputs basta colocar a class validate-unsaved
# summernote
,
callbacks: {
onBlur: function () {
$("#controloAlteracoes").val(1).trigger("change");
}
}
# botoes de guardar class drop-unsaved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment