initial commit
This commit is contained in:
174
wwwroot/js/common.js
Normal file
174
wwwroot/js/common.js
Normal file
@@ -0,0 +1,174 @@
|
||||
'use strict';
|
||||
|
||||
$.defaultHandlers = {
|
||||
|
||||
disableSubmitButton: function( form , disable) {
|
||||
form.find(":submit").attr("disabled", disable);
|
||||
},
|
||||
|
||||
startWait: function( ) {
|
||||
$('#pleaseWaitDialog').modal('show');
|
||||
},
|
||||
|
||||
endWait: function( ) {
|
||||
$('#pleaseWaitDialog').modal('hide');
|
||||
},
|
||||
|
||||
showErrorMessage: function( form , message ) {
|
||||
var div = form.find(".form-error-message");
|
||||
if (div.length) {
|
||||
div.show();
|
||||
div.html(message);
|
||||
} else {
|
||||
alert(message);
|
||||
}
|
||||
},
|
||||
|
||||
hideErrorMessage: function( form ) {
|
||||
var div = form.find(".form-error-message");
|
||||
if (div.length)
|
||||
div.hide();
|
||||
},
|
||||
|
||||
validateResponse: function( response ) {
|
||||
if (!response)
|
||||
return { Success: false, ErrorMessage: "Системна грешка." };
|
||||
return {
|
||||
Success: response.Success ?? false,
|
||||
Result: response.Result ,
|
||||
ErrorMessage: response.ErrorMessage ?? "Системна грешка."
|
||||
};
|
||||
},
|
||||
|
||||
postProcessSuccess: function( caller , response ) {
|
||||
|
||||
// if data-navigate="" is set, go there
|
||||
var navigate_url = caller.data("navigate");
|
||||
if (navigate_url) {
|
||||
window.location = navigate_url.replace(':response', response);
|
||||
return;
|
||||
}
|
||||
|
||||
// fallback: refresh the page
|
||||
window.location.reload();
|
||||
} ,
|
||||
|
||||
processResponse: function( form , response ) {
|
||||
var result = $.defaultHandlers.validateResponse( response );
|
||||
if (!result.Success) {
|
||||
$.defaultHandlers.showErrorMessage(form, result.ErrorMessage);
|
||||
return;
|
||||
}
|
||||
$.defaultHandlers.postProcessSuccess(form, result.Result);
|
||||
},
|
||||
|
||||
submitHandler: function( element , event ) {
|
||||
event.preventDefault();
|
||||
|
||||
var form = $(element);
|
||||
$.defaultHandlers.hideErrorMessage(form);
|
||||
$.defaultHandlers.disableSubmitButton(form, true);
|
||||
$.defaultHandlers.startWait();
|
||||
$.ajax({
|
||||
url: form.data("service"),
|
||||
type: 'POST',
|
||||
data: new FormData(element),
|
||||
async: true,
|
||||
cache: false,
|
||||
contentType: false,
|
||||
enctype: 'multipart/form-data',
|
||||
processData: false,
|
||||
success: function( response ) {
|
||||
$.defaultHandlers.disableSubmitButton(form, false);
|
||||
$.defaultHandlers.processResponse(form, response);
|
||||
$.defaultHandlers.endWait();
|
||||
},
|
||||
error: function( xhr , status , error ) {
|
||||
$.defaultHandlers.disableSubmitButton(form, false);
|
||||
$.defaultHandlers.showErrorMessage(form, "XHR:" + xhr.responseText + "\n<br>Status: " + status + "\n<br>Error: " + error);
|
||||
$.defaultHandlers.endWait();
|
||||
}
|
||||
});
|
||||
return false;
|
||||
} ,
|
||||
|
||||
processRestLinkResponse: function( sender , response ) {
|
||||
var result = $.defaultHandlers.validateResponse( response );
|
||||
if (!result.Success) {
|
||||
alert( result.ErrorMessage );
|
||||
return;
|
||||
}
|
||||
$.defaultHandlers.postProcessSuccess(sender, result.Result);
|
||||
} ,
|
||||
|
||||
restLinkHandler: function( event ) {
|
||||
event.preventDefault();
|
||||
|
||||
var sender = $(event.target);
|
||||
sender.attr("disabled", true);
|
||||
$.defaultHandlers.startWait();
|
||||
$.ajax({
|
||||
url: sender.data("service"),
|
||||
type: 'GET',
|
||||
async: true,
|
||||
cache: false,
|
||||
processData: false,
|
||||
success: function( response ) {
|
||||
sender.attr("disabled", false);
|
||||
$.defaultHandlers.processRestLinkResponse(sender, response);
|
||||
$.defaultHandlers.endWait();
|
||||
},
|
||||
error: function( xhr , status , error ) {
|
||||
sender.attr("disabled", false);
|
||||
alert("XHR:" + xhr.responseText + "\n<br>Status: " + status + "\n<br>Error: " + error);
|
||||
$.defaultHandlers.endWait();
|
||||
}
|
||||
});
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready(function( ) {
|
||||
|
||||
//$("#pleaseWaitDialog").modal({ backdrop: 'static', keyboard: false });
|
||||
//$("#pleaseWaitDialog").modal({ show:true, backdrop: 'static', keyboard: false });
|
||||
// $("#pleaseWaitDialog").modal("show");
|
||||
|
||||
$('#pleaseWaitDialog').modal({ show: true, backdrop: 'static', keyboard: false });
|
||||
// setTimeout(function () { $('#pleaseWaitDialog').modal('show'); }, 1000);
|
||||
// setTimeout(function () { $('#pleaseWaitDialog').modal('hide'); }, 3000);
|
||||
|
||||
$('form.js_default').each(function( ) {
|
||||
$(this).validate({});
|
||||
});
|
||||
|
||||
$('form.js_service').each(function () {
|
||||
$(this).validate({ submitHandler: $.defaultHandlers.submitHandler });
|
||||
});
|
||||
|
||||
$('a.js_service').click(
|
||||
$.defaultHandlers.restLinkHandler
|
||||
);
|
||||
|
||||
$('button.js_service').click(
|
||||
$.defaultHandlers.restLinkHandler
|
||||
);
|
||||
|
||||
$('a.toggle_dialog').click(function( e ) {
|
||||
$("#" + $(this).data('hide')).modal("hide");
|
||||
var dialog = $("#" + $(this).data('show'));
|
||||
dialog.modal("show");
|
||||
dialog.find('[autofocus]').focus();
|
||||
e.preventDefault();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('a.js_dialog').click(function( e ) {
|
||||
var dialog = $('#' + $(this).data('target'));
|
||||
dialog.modal("toggle");
|
||||
dialog.find('[autofocus]').focus();
|
||||
e.preventDefault();
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user