$(function () {
$('[data-toggle="tooltip"]').tooltip({
container: 'body'
});
});
/**
* Các hàm sử dụng chung
*/
var common = {};
common.csrf = $('meta[name="csrf-token"]').attr("content");
common.csrfParam = $('meta[name="csrf-param"]').attr("content");
common.modalOpen = function (data, lg, title) {
$("#myModalContent").html(data);
$("#myModalContent").attr("style", "");
if (lg) {
$(".modal-dialog").addClass("modal-lg");
} else {
$(".modal-dialog").removeClass("modal-lg");
}
if (!title) {
$("#modalHeader").addClass("hidden");
} else {
$("#modalHeader").removeClass("hidden");
$("#myModalLabel").html(title);
}
$("#myModalFooter").addClass("hidden");
$("#myModal").modal();
};
common.modalOpenFullScreen = function (data, title) {
$("input[name='ReLoadFullScreen']").val("false");
$("#myModalFullScreenContent").html(data);
if (title == false) {
$("#modalFullScreenHeader").addClass("hidden");
} else {
$("#modalFullScreenHeader").removeClass("hidden");
$("#myModalFullScreenLabel").html(title);
}
$("#myModalFullScreen").modal();
};
common.modalBlock = function (stt) {
if (stt) {
$("#blocking").modal({
keyboard: false,
backdrop: false
});
} else {
$("#blocking").modal("hide");
}
};
common.uploadBlock = function (stt) {
if (stt) {
$("#uploadBlock").modal({
keyboard: false,
backdrop: false
});
} else {
$("#uploadBlock").modal("hide");
}
};
common.modalAlert = function (text, cls, link) {
$("#alertModalContent").html(text);
$("#alertModalDialog").removeClass("modal-lg");
$("#alertModal").modal({
backdrop: 'static',
keyboard: false
});
switch (cls) {
case "success":
$("#alertModalHeader").attr("style", "background-color:#5cb85c;color:white;");
break;
case "danger":
$("#alertModalHeader").attr("style", "background-color:#d9534f;color:white;");
break;
case "info":
$("#alertModalHeader").attr("style", "background-color:#5bc0de;color:white;");
break;
case "warning":
$("#alertModalHeader").attr("style", "background-color:#f0ad4e;color:white;");
break;
}
if (link !== "") {
$('#alertModal').on('hide.bs.modal', function () {
window.location = link;
});
}
};
common.ajaxError = function () {
common.modalAlert("Có lỗi xảy ra, có thể do đường truyền mạng, xin vui lòng thử lại!", "danger", "");
};
common.btnUpload = function (mUrl, className, extension, fileSize) {
var fData = {
UploadFile: true,
Name: className
};
fData[common.csrfParam] = common.csrf;
new afuButton({
uploadURI: mUrl,
formData: fData,
wrap: {
tagName: 'div',
classes: ''
},
fileExtension: extension,
fileSizeLimit: fileSize,
classes: 'btn btn-default file-paperclip-' + className,
fakeInputContent: '',
onUploaded: function (data) {
common.uploadBlock(false);
if (data !== 'false') {
var r = JSON.parse(data);
if (r['link'] == 2) {
alert('Định dạng tệp tin không được hỗ trợ!\n Các loại tệp tin được hỗ trợ: ' + extension);
} else {
//alert("Tệp tin đã được tải lên thành công");
$("#fileUpload" + className).attr("href", r['link']);
$("#fileUpload" + className).html(r['name'] + " ");
$("input[name='fileUploadLink" + className + "']").val(r['link']);
}
} else {
alert('Có lỗi xảy ra, tải tệp tin không thành công!');
}
}
}).addInstance('file' + className);
$(".file-paperclip-" + className).closest("div").attr("style", "display:inline-block;");
};
common.btnUploadImage = function (mUrl, className, extension, fileSize) {
var fData = {
UploadImage: true,
Name: className
};
fData[common.csrfParam] = common.csrf;
new afuButton({
uploadURI: mUrl,
formData: fData,
wrap: {
tagName: 'div',
classes: ''
},
fileExtension: extension,
fileSizeLimit: fileSize,
classes: 'btn btn-primary btn-xs',
fakeInputContent: ' Chọn hình ảnh',
onUploaded: function (data) {
common.uploadBlock(false);
alert("Hình ảnh đã được tải lên thành công");
$("#HinhMinhHoa" + className).attr("src", "data/uploads" + data);
$("input[name='HinhMinhHoaLink" + className + "']").val(data);
$("input[name='updateStatus']").val("1");
}
}).addInstance('image' + className);
};
common.dateTimePicker = function (id) {
$('#' + id).datetimepicker({
locale: 'vi',
ignoreReadonly: true,
format: 'HH:mm DD/MM/YYYY',
sideBySide: true
});
};
common.dateTimePickerDay = function (id) {
$('#' + id).datetimepicker({
locale: 'vi',
ignoreReadonly: true,
format: 'DD/MM/YYYY'
});
};
common.dateTimePickerHour = function (id) {
$('#' + id).datetimepicker({
locale: 'vi',
ignoreReadonly: true,
format: 'HH:mm'
});
};
common.checkAll = function (id, cls) {
$('#' + id).on('ifChecked', function (event) {
$('.' + cls).iCheck('check');
});
$('#' + id).on('ifUnchecked', function (event) {
$('.' + cls).iCheck('uncheck');
});
$('#' + id).on('ifChanged', function (event) {
if (!this.changed) {
this.changed = true;
$('#' + id).iCheck('check');
} else {
this.changed = false;
$('#' + id).iCheck('uncheck');
}
$('#' + id).iCheck('update');
});
};
common.getUrlParameter = function (sParam) {
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
sURLVariables = sPageURL.split('&'),
sParameterName,
i;
for (i = 0; i < sURLVariables.length; i++) {
sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] === sParam) {
return sParameterName[1] === undefined ? true : sParameterName[1];
}
}
};
common.error = function (id, text) {
$("#" + id).addClass("has-error").removeClass("has-success");
$("#" + id).find(".help-block").html(text).removeClass("hidden");
};
common.success = function (id) {
$("#" + id).addClass("has-success").removeClass("has-error");
$("#" + id).find(".help-block").addClass("hidden");
};
common.form = function (e, obj) {
common.modalBlock(true);
$.ajax({
url: $(e).attr('data-href'),
type: 'POST',
success: function (data) {
common.modalBlock(false);
common.modalOpen(data.form, false, data.title);
if (obj === 'department')
$('#Pid').select2();
},
error: function (jqXHR, textStatus, errorThrown) {
common.modalBlock(false);
common.ajaxError();
}
});
};
common.checkboxInit = function (id) {
$('.checkbox-' + id).iCheck({
checkboxClass: 'icheckbox_flat-blue'
});
$('#checkall-' + id).on('ifChanged', function (event) {
if (event.target.checked) {
$('.checkbox-' + id).iCheck('check');
} else {
$('.checkbox-' + id).iCheck('uncheck');
}
});
};
/**
* =========================
*/
/**
* Notification
*/
var notification = {
success: function (text, time) {
$.notify({
icon: "fa fa-check",
message: "" + text + ""
}, {
type: "success",
allow_dismiss: false,
showProgressbar: false,
z_index: 99999999,
placement: {
from: "bottom",
align: "left"
},
offset: 70,
delay: time,
animate: {
enter: 'animated fadeInDown',
exit: 'animated fadeOutUp'
},
});
},
danger: function (text, time) {
$.notify({
icon: "fa fa-remove",
message: "" + text + ""
}, {
type: "danger",
allow_dismiss: false,
showProgressbar: false,
z_index: 99999999,
placement: {
from: "bottom",
align: "left"
},
offset: 70,
delay: time,
animate: {
enter: 'animated fadeInDown',
exit: 'animated fadeOutUp'
},
});
},
warning: function (text, time) {
$.notify({
icon: "fa fa-question-circle",
message: "" + text + ""
}, {
type: "warning",
allow_dismiss: false,
showProgressbar: false,
z_index: 99999999,
placement: {
from: "bottom",
align: "left"
},
offset: 70,
delay: time,
animate: {
enter: 'animated fadeInDown',
exit: 'animated fadeOutUp'
},
});
},
info: function (text, time) {
$.notify({
icon: "fa fa-info-circle",
message: "" + text + ""
}, {
type: "info",
allow_dismiss: false,
showProgressbar: false,
z_index: 99999999,
placement: {
from: "bottom",
align: "right"
},
offset: 70,
delay: time,
animate: {
enter: 'animated fadeInDown',
exit: 'animated fadeOutUp'
},
});
},
df: function (text, time, type) {
$.notify({
icon: "fa fa-info-circle",
message: text
}, {
type: type,
allow_dismiss: false,
showProgressbar: false,
z_index: 99999999,
placement: {
from: "bottom",
align: "right"
},
offset: 70,
delay: time,
animate: {
enter: 'animated fadeInDown',
exit: 'animated fadeOutUp'
},
});
},
primary: function (text, time) {
$.notify({
icon: "fa fa-info-circle",
message: "" + text + ""
}, {
type: "primary",
allow_dismiss: false,
showProgressbar: false,
z_index: 99999999,
placement: {
from: "bottom",
align: "left"
},
offset: 70,
delay: time,
animate: {
enter: 'animated fadeInDown',
exit: 'animated fadeOutUp'
},
});
},
};
+function ($, document) {
//Fix scroll with modal multiple show
var stackModal = 0;
var orginBodyPad = '';
$(document).on('show.bs.modal', '.modal', function (event) {
// var zIndex = 1040 + (10 * $('.modal:visible').length);
// $(this).css('z-index', zIndex);
if (stackModal <= 0) {
orginBodyPad = document.body.style.paddingRight || '';
}
stackModal++;
setTimeout(function () {
$('.modal-backdrop').not('.modal-stack')
// .css('z-index', zIndex - 1)
.addClass('modal-stack');
}, 0);
$(this).appendTo(document.body);
});
$(document).on('hidden.bs.modal', '.modal', function (event) {
stackModal--;
if (stackModal > 0) {
$('body').addClass("modal-open");
} else {
$('body').removeClass("modal-open");
document.body.style.paddingRight = orginBodyPad;
orginBodyPad = '';
}
});
}(jQuery, document);