You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
//custome datatable
(function() {
/* var run = function(myOptionSettings) {
console.log(myOptionSettings)
};*/
$(document).on('init.dt', function (e, settings, json) {
//var myOption = settings.oInit.myOption
// run(myOption)
})
})(document);
function datatableArr(table){
//get ajax url
var ajaxUrl = table.attr('dt-url');
var tc = table.find('thead').find('tr');
//get field column
var columns = [];
var loop = 0;
$.each(tc.find('th'), function(x, y){
columns[loop++] = {data : $(this).attr('dt-field')}
});
//get search enable
var dtSearch = table.attr('dt-search');
var isSearchEnable = false;
if(dtSearch == "true"){
isSearchEnable = true;
}
//render datatable
table.DataTable({
"processing": true,
"serverSide": true,
searching: isSearchEnable,
ajax: {
url : ajaxUrl,
type: 'POST',
beforeSend: function(){
ajaxSetupCRSF();
},
data: function(d, settings){
var oTable = $('#'+settings.sTableId).DataTable();
var info = oTable.page.info();
var selectedColumn = oTable;
/*-------- paging number and showing current data ----------- */
d.page = info.page; // get current page
d.size = d.length; // show entries
/*--------- Sorting Data ------------*/
//get index selected order
var idxColumn = oTable.order()[0][0];
//get type selected order
var idxType = oTable.order()[0][1];
d.sort = d.columns[idxColumn].data+ ',' + idxType;
/*--------- search data ------------------- */
d.search = d.search.value;
planify(d);
}
},
"columns": columns
});
}
function searchDatatable(){
// #myInput is a <input type="text"> element
$('#myInput').on( 'keyup', function () {
table.search( this.value ).draw();
} );
}
function planify(data) {
for (var i = 0; i < data.columns.length; i++) {
column = data.columns[i];
column.searchRegex = column.search.regex;
column.searchValue = column.search.value;
delete(column.search);
}
}
JS Default Setup (javascript-default.js)
$(function(){
$.ajaxSetup({
beforeSend: function(){
setupAjaxDefault.prepare();
},
success: function(data){
setupAjaxDefault.success();
}, error : function(data){
setupAjaxDefault.error();
}
});
});
var setupAjaxDefault = {
success : function(message){
$.LoadingOverlay("hide");
if(message != null){
defaultNotification('success', message)
} else {
defaultNotification('success');
}
}, error : function(message){
$.LoadingOverlay("hide");
if(message != null){
defaultNotification('error', message)
} else {
defaultNotification('error');
}
}, prepare : function(){
ajaxSetupCRSF();
$.LoadingOverlay("show");
}, reset : function(form){
$('#'+form).trigger("reset");
}
}
function ajaxSetupCRSF(){
var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");
$(document).ajaxSend(function(e, xhr, options) {
xhr.setRequestHeader(header, token);
});
}
function defaultNotification(type, message){
var successMessage = "Process has been successful"
var errorMessage = "oops, there was an error in the process";
var warningMessage = "this proses has warning!!";
var infoMessage = "just information default";
if(message != null){
successMessage = message;
errorMessage = message;
warningMessage = message;
infoMessage = message;
}
if(type == "error"){
toastr.error(errorMessage);
} else if(type == "warning"){
toastr.warning(warningMessage);
} else if(type == "info"){
toastr.info(infoMessage)
} else if(type == "success"){
toastr.success(successMessage);
}
}
//setup for jquery validation
$.validator.setDefaults({
highlight: function(element) {
$(element).parent().addClass('has-error');
},
unhighlight: function(element) {
$(element).parent().removeClass('has-error');
}
});
$.extend(jQuery.validator.messages, {
required: "This field is required.",
remote: "Please fix this field.",
email: "Please enter a valid email address.",
url: "Please enter a valid URL.",
date: "Please enter a valid date.",
dateISO: "Please enter a valid date (ISO).",
number: "Please enter a valid number.",
digits: "Please enter only digits.",
creditcard: "Please enter a valid credit card number.",
equalTo: "Please enter the same value again.",
accept: "Please enter a value with a valid extension.",
maxlength: jQuery.validator.format("Please enter no more than {0} characters."),
minlength: jQuery.validator.format("Please enter at least {0} characters."),
rangelength: jQuery.validator.format("Please enter a value between {0} and {1} characters long."),
range: jQuery.validator.format("Please enter a value between {0} and {1}."),
max: jQuery.validator.format("Please enter a value less than or equal to {0}."),
min: jQuery.validator.format("Please enter a value greater than or equal to {0}.")
});