110 lines
2.8 KiB
JavaScript
110 lines
2.8 KiB
JavaScript
|
/**
|
||
|
* /script/script.js
|
||
|
* @version 2.0
|
||
|
* @desc Javascript for ajax and for fancy tables
|
||
|
* @author Fándly Gergő Zoltán
|
||
|
* @copy 2017 Fándly Gergő Zoltán
|
||
|
*/
|
||
|
|
||
|
function ask(q, togo){
|
||
|
if(confirm(q)){
|
||
|
window.location=togo;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function prompt_go(question, value, todo){
|
||
|
var reply=prompt(question, value);
|
||
|
if(reply){
|
||
|
window.location=todo+reply;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function disposeMessageOverlay(){
|
||
|
$("#messageOverlay").html("");
|
||
|
$("#messageOverlay").css("display", "none");
|
||
|
}
|
||
|
|
||
|
jQuery(function($){
|
||
|
|
||
|
//loading overlay
|
||
|
$(document).ajaxStart(function(){
|
||
|
$("#loadingOverlay").css("display", "block");
|
||
|
});
|
||
|
$(document).ajaxComplete(function(){
|
||
|
$("#loadingOverlay").css("display", "none");
|
||
|
});
|
||
|
|
||
|
|
||
|
//footable
|
||
|
$(".table").footable();
|
||
|
|
||
|
|
||
|
//handle response
|
||
|
function setResponse(response){
|
||
|
$("#messageOverlay").html(response);
|
||
|
$("#messageOverlay").css("display", "block");
|
||
|
setTimeout(function(){
|
||
|
$("#messageOverlay").html("");
|
||
|
$("#messageOverlay").css("display", "none");
|
||
|
}, 5000);
|
||
|
}
|
||
|
|
||
|
//handle form submits
|
||
|
$(".ajaxform").submit(function(e){
|
||
|
e.preventDefault(); //turn off default handler
|
||
|
|
||
|
//run ajax request
|
||
|
$.ajax({
|
||
|
url: e.target.action+"?backend",
|
||
|
type: e.target.method,
|
||
|
data: $(this).serialize(),
|
||
|
success: function(response){
|
||
|
setResponse(response);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
//reset form if data-noreset not specified
|
||
|
if($(this).data("noreset")==undefined){
|
||
|
e.target.reset();
|
||
|
}
|
||
|
});
|
||
|
|
||
|
|
||
|
//handle button presses
|
||
|
$(document).on("click", ".ajaxbutton", function(e){
|
||
|
e.preventDefault(); //turn off default handler
|
||
|
|
||
|
if($(this).data("confirm")==undefined || confirm($(this).data("confirm"))){ //check if confirmation needed
|
||
|
//prompt for input if needed
|
||
|
var reply="";
|
||
|
if($(this).data("prompt")!=undefined){
|
||
|
reply=prompt($(this).data("prompt"), '');
|
||
|
}
|
||
|
|
||
|
//build target url
|
||
|
var targetUrl=$(this).data("url")+reply;
|
||
|
if(targetUrl.indexOf("?")){
|
||
|
targetUrl+="&backend";
|
||
|
}
|
||
|
else{
|
||
|
targetUrl+="?backend";
|
||
|
}
|
||
|
|
||
|
//run ajax request
|
||
|
$.ajax({
|
||
|
url: targetUrl,
|
||
|
type: "GET",
|
||
|
success: function(response){
|
||
|
setResponse(response);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
//delete caller button if data-kepp not specified
|
||
|
if($(this).data("keep")==undefined){
|
||
|
$(this).remove();
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
});
|