Files
hrm_eva/wwwroot/js/coregen.js

696 lines
22 KiB
JavaScript

$(document).ready(function () {
$( document ).on( 'focus', ':input', function(){
$( this ).attr( 'autocomplete', 'nakorn2' );
});
$('*[data-provide="datepicker"]').wrap('<div class="input-group"></div>');
$('*[data-provide="datepicker"]').calendarsPicker(
{
calendar: $.calendars.instance('thai','th'),
yearRange: 'c-200:c+10',
showOnFocus: true,
showTrigger: '<div class="input-group-append"><span class="trigger input-group-text"><i class="fa fa-calendar"></i></span></div>'
}
);
//$('*[data-provide="datepicker"]').attr("placeholder", "วว/ดด/ปปปป");
$('*[data-provide="datepicker"]').mask("99/99/9999", {placeholder: 'วว/ดด/ปปปป' });
});
//=====================================================
function formatNumber(num) {
if (num === "" || num === null || isNaN(num)) return "";
return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
}
function formatNumber2(num, d) {
if (num === "" || num === null || isNaN(num)) return "";
return num.toFixed(d).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,')
}
function formatNumberTemp(num) {
if(num === "" || num === null) return "";
return num.toString();
}
function getUrlParameter(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];
}
}
}
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) === ' ') {
c = c.substring(1);
}
if (c.indexOf(name) === 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
function AjaxGetRequest(path, successFunc, failFunc) {
if (getCookie("access_token") === null || getCookie("access_token") === "") {
$.ajax({
url: GetUnix(path),
type: 'GET',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: successFunc,
error: failFunc
});
} else {
$.ajax({
url: GetUnix(path),
type: 'GET',
headers: { 'Authorization': "Bearer " + Cookies.get('access_token') },
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: successFunc,
error: failFunc
});
}
}
function AjaxGetRequestWithData(path, jData, successFunc, failFunc) {
if (getCookie("access_token") === null || getCookie("access_token") === "") {
$.ajax({
url: GetUnix(path),
type: 'GET',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: JSON.stringify(jData),
success: successFunc,
error: failFunc
});
} else {
$.ajax({
url: GetUnix(path),
type: 'GET',
headers: { 'Authorization': "Bearer " + Cookies.get('access_token') },
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: JSON.stringify(jData),
success: successFunc,
error: failFunc
});
}
}
function AjaxPostRequest(path, jData, successFunc, failFunc) {
if (getCookie("access_token") === null || getCookie("access_token") === "") {
$.ajax({
url: path,
type: 'POST',
//headers: { 'Authorization': "Bearer " + Cookies.get('access_token') },
contentType: 'application/json',
dataType: 'json',
data: JSON.stringify(jData),
success: successFunc,
error: failFunc
});
} else {
$.ajax({
url: path,
type: 'POST',
headers: { 'Authorization': "Bearer " + Cookies.get('access_token') },
contentType: 'application/json',
dataType: 'json',
data: JSON.stringify(jData),
success: successFunc,
error: failFunc
});
}
}
function AjaxPutRequest(path, jData, successFunc, failFunc) {
if (getCookie("access_token") === null || getCookie("access_token") === "") {
$.ajax({
url: path,
type: 'PUT',
//headers: { 'Authorization': "Bearer " + Cookies.get('access_token') },
contentType: 'application/json',
dataType: 'json',
data: JSON.stringify(jData),
success: successFunc,
error: failFunc
});
} else {
$.ajax({
url: path,
type: 'PUT',
headers: { 'Authorization': "Bearer " + Cookies.get('access_token') },
contentType: 'application/json',
dataType: 'json',
data: JSON.stringify(jData),
success: successFunc,
error: failFunc
});
}
}
function AjaxPutRequestFile(path, jData, successFunc, failFunc) {
if (getCookie("access_token") === null || getCookie("access_token") === "") {
$.ajax({
url: path,
type: 'PUT',
//headers: { 'Authorization': "Bearer " + Cookies.get('access_token') },
contentType: 'application/json',
dataType: 'binary',
data: JSON.stringify(jData),
success: successFunc,
error: failFunc
});
} else {
$.ajax({
url: path,
type: 'PUT',
headers: { 'Authorization': "Bearer " + Cookies.get('access_token') },
contentType: 'application/json',
dataType: 'binary',
data: JSON.stringify(jData),
success: successFunc,
error: failFunc
});
}
}
function AjaxDeleteRequest(path, jData, successFunc, failFunc) {
if (getCookie("access_token") === null || getCookie("access_token") === "") {
$.ajax({
url: path,
type: 'DELETE',
//headers: { 'Authorization': "Bearer " + Cookies.get('access_token') },
contentType: 'application/json',
dataType: 'json',
data: JSON.stringify(jData),
success: successFunc,
error: failFunc
});
} else {
$.ajax({
url: path,
type: 'DELETE',
headers: { 'Authorization': "Bearer " + Cookies.get('access_token') },
contentType: 'application/json',
dataType: 'json',
data: JSON.stringify(jData),
success: successFunc,
error: failFunc
});
}
}
function AjaxUploadRequest(path, formData, successFunc, failFunc) {
if (getCookie("access_token") === null || getCookie("access_token") === "") {
$.ajax({
url: path,
type: 'POST',
processData: false, // important
contentType: false, // important
dataType: 'json',
data: formData,
success: successFunc,
error: failFunc
});
} else {
$.ajax({
url: path,
type: 'POST',
headers: { 'Authorization': "Bearer " + Cookies.get('access_token') },
processData: false, // important
contentType: false, // important
dataType: 'json',
data: formData,
success: successFunc,
error: failFunc
});
}
}
function DropDownClearFormAndFeedWithData(d, result, x, y, z, i) {
$(d).html('');
$(d).append($("<option></option>")
.attr("value", "")
.text("กรุณาเลือก"));
if (z !== "") {
$.each(result[z], function (key, value) {
$(d).append($("<option></option>")
.attr("value", value[x])
.text(value[y]));
});
} else {
$.each(result, function (key, value) {
$(d).append($("<option></option>")
.attr("value", value[x])
.text(value[y]));
});
}
$(d).val(i);
}
function DropDownInitialFormWithData(d, result, x, y, z) {
$(d).html('');
$(d).append($("<option></option>")
.attr("value", "")
.text("กรุณาเลือก"));
if (z !== "") {
$.each(result[z], function (key, value) {
$(d).append($("<option></option>")
.attr("value", value[x])
.text(value[y]));
});
} else {
$.each(result, function (key, value) {
$(d).append($("<option></option>")
.attr("value", value[x])
.text(value[y]));
});
}
}
////////////////////////// Alert Functions //////////////////////////////////
function AlertSuccess(msg) {
alert(msg);
}
function AlertDanger(xhr, status, error) {
var errorMessage = xhr.responseText;
endLoad();
alert(errorMessage);
}
function GetUnix(path) {
if (path !== "") {
if (path.indexOf("?") > -1)
path += "&";
else
path += "?";
path += "_=" + moment().unix();
}
return path;
}
function startLoad() {
$.LoadingOverlay("show");
}
function endLoad() {
$.LoadingOverlay("hide");
}
////////////////////////// Service Frame //////////////////////////////////
function inIframe() {
try {
return window.self !== window.top;
} catch (e) {
return true;
}
}
function window_open_from_root(frameSrc) {
if (inIframe()) {
window.parent.window_open_from_root(frameSrc);
} else {
window.location = frameSrc;
}
}
function window_open(frameSrc) {
$(this).parents('body').addClass('overflow-fix');
$('#myframe').addClass('iframe-visible');
$('#myframe').attr('src', frameSrc);
//return false;
}
function window_close() {
$(window.frameElement).removeClass('iframe-visible');
$(window.frameElement).parents('body').removeClass('overflow-fix');
$(window.frameElement).attr('src', '');
endLoad();
//return false;
}
function refresh_frame() {
//&#xf021;
console.log("refresh_btn");
var ref = $('#refresh_icon');
//if (window.parent == window.top) {
ref.addClass("fa fa-refresh fa-spin");
ref.html("");
window.location.reload(true);
//}
}
////////////////////////// Control Service //////////////////////////////////
function CheckBoxGetFromForm(d) {
if ($(d).is(':checked')) {
return true;
} else {
return false;
}
}
function CheckBoxFeedDataToForm(d, v) {
if (v === true) {
$(d).prop('checked', true);
} else {
$(d).prop('checked', false);
}
}
function formatDate(date) {
let value = '';
if (date === null) {
value = '';
} else {
var d = new Date(date),
month = '' + (d.getMonth() + 1),
day = '' + (d.getDate()),
year = ''+(d.getFullYear()+543);
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
value = [day, month, year].join('/');
}
return value;
}
function getDate(dateText) {
//console.log(dateText);
if (dateText !== "") {
var parts = dateText.split('/');
var day = parseInt(parts[0]); // + 1;
var month = parseInt(parts[1]) - 1;
var year = parseInt(parts[2]) - 543;
//console.log(parts);
//console.log(year);
//console.log(month);
//console.log(day);
//var d = new Date(year, month, day);
var d = new Date(Date.UTC(year, month, day));
return d;
} else {
return null;
}
}
function formatDateForGetParameter(date) {
let value = '';
if (date === null) {
value = '';
} else {
var d = new Date(date),
month = '' + (d.getMonth() + 1),
//day = '' + (d.getDate() - 1),
day = '' + (d.getDate()),
year = '' + (d.getFullYear());
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
value = [year, month, day].join('-');
}
return value;
}
// ================= File Upload ========================
function UploadImage(file, code) {
var file_data = file.prop("files")[0];
var myFormData = new FormData();
myFormData.append('files', file_data);
var successFunc = function (response) {
$("#" + code + "_linkurl").text("ดูหรือดาวโหลดไฟล์ของคุณ");
$("#" + code + "_linkurl").attr('href', apisite + "/" + response.filesUploaded[0]);
$("#" + code + "_linkurl").attr('target', '_blank');
$("#" + code + "_remove").show();
$("#" + code + "_hidURL").val(response.filesUploaded[0]);
endLoad();
};
startLoad();
AjaxUploadRequest(apisite + "/api/Attachment/UploadMultipleFiles", myFormData, successFunc, AlertDanger);
}
function feedFileToControl(thefile, thefileDisplay, code, mode) {
if (!thefile) {
$("#" + code + "_linkurl").text("ยังไม่มีการแนบไฟล์");
$("#" + code + "_linkurl").attr('href', '#');
$("#" + code + "_linkurl").attr('target', '');
$("#" + code + "_remove").hide();
$("#" + code + "_hidURL").val("");
$("#" + code + "_file").val("");
} else {
$("#" + code + "_linkurl").text("ดูหรือดาวโหลดไฟล์ของคุณ");
if (mode === "file") {
$("#" + code + "_linkurl").attr('href', appsite + "/" + thefileDisplay);
} else if(mode === "db") {
$("#" + code + "_linkurl").attr('href', thefileDisplay);
}
$("#" + code + "_linkurl").attr('target', '_blank');
$("#" + code + "_remove").show();
$("#" + code + "_hidURL").val(thefile);
$("#" + code + "_file").val("");
}
}
function removeFile(code) {
if (confirm('คุณต้องการลบไฟล์ ใช่หรือไม่?')) {
$("#" + code + "_linkurl").text("ยังไม่มีการแนบไฟล์");
$("#" + code + "_linkurl").attr('href', '#');
$("#" + code + "_linkurl").attr('target', '');
$("#" + code + "_remove").hide();
$("#" + code + "_hidURL").val("");
$("#" + code + "_file").val("");
}
}
function setupUploadEvent() {
}
function hasExtension(inputID, exts) {
var fileName = document.getElementById(inputID).value;
return (new RegExp('(' + exts.join('|').replace(/\./g, '\\.') + ')$')).test(fileName);
}
// ================= Validation ========================
function SetupValidationRemark(group) {
$("[iGroup='" + group + "'][iRequire='true']").each(function (index) {
var k = "lab_" + $(this).attr("id");
$("<font color='red'> *</font>").insertAfter("#" + k);
});
// in case of file upload
$("input[iGroup='" + group + "'][iRequire='true'][type='hidden']").each(function (index) {
var k = "lab_" + $(this).attr("id");
$("<font color='red'> *</font>").insertAfter("#" + k.replace('_hidURL', ''));
});
}
function ValidateForm(group, customValidate) {
//console.log("ValidateForm "+group);
var result = "";
var obj = null;
$("input[iRequire='true'][iGroup='" + group + "']").each(function (index) {
if ($(this).val() === "" || $(this).val() === null) {
result += "- กรุณาระบุ " + $(this).attr("iLabel") + "\n";
$(this).css('border-color', 'red');
if (obj === null) obj = $(this);
} else {
$(this).css('border-color', '');
}
});
$("textarea[iRequire='true'][iGroup='" + group + "']").each(function (index) {
if ($(this).val() === "" || $(this).val() === null) {
result += "- กรุณาระบุ " + $(this).attr("iLabel") + "\n";
$(this).css('border-color', 'red');
if (obj === null) obj = $(this);
} else {
$(this).css('border-color', '');
}
});
$("select[iRequire='true'][iGroup='" + group + "']").each(function (index) {
if ($(this).val() === "" || $(this).val() === null) {
result += "- กรุณาระบุ " + $(this).attr("iLabel") + "\n";
$(this).css('border-color', 'red');
if (obj === null) obj = $(this);
} else {
$(this).css('border-color', '');
}
});
result += customValidate(group);
if (result !== "") {
obj.focus();
alert(result);
return false;
} else {
return true;
}
}
//===================================================================================================================
function GetSubMenu(result){
var x = '';
$.each(result, function (i, data) {
var tmp = "'";
var tag = '';
tag = '<li class="sub-menu">';
tag += '<li><a href="javascript:window_open_from_root('+tmp+data.url+tmp+');" class="active"><span class="menu-dot">&middot;</span>'+data.name+'</a>';
tag += '</li>';
x += tag;
});
return x;
}
function GetDayStringFromDate(thedate) {
var date = thedate.split(" ")[0];
var time = thedate.split(" ")[1];
var day = date.split("-")[2];
var month = date.split("-")[1];
var year = String(parseInt(date.split("-")[0]) + 543);
var hour = time.split(":")[0];
var minute = time.split(":")[1];
return "วันที่ "+day+"/"+month+"/"+year+" เวลา "+hour+"."+minute+" น."
}
function GetNoti(noti_url, mynoti, root) {
var refresh_noti = function (result) {
console.log(result);
//console.log(result.unread.length);
var dropdown = "";
if (result.unread.length <= 0) {
dropdown = '<div data-toggle="dropdown" class="dropdown-toggle" href="#" style="display: flex;"><i class="fa fa-bell" style="font-size: 19px;color:#ccc"></i></div>';
} else {
dropdown = '<div data-toggle="dropdown" class="dropdown-toggle" href="#" style="display: flex;"><i class="fa fa-bell" style="font-size: 19px;color:red"></i><div style="color: red;font-size:18px">+' + result.unread.length+'</div></div>';
}
$(mynoti).append(dropdown);
var tag = "";
var temp = "'";
if (result.readed.length + result.unread.length > 0) {
tag += '<ul class="dropdown-menu extended notification" style="min-width: 500px;">';
if (result.unread.length > 0) {
tag += '<li><p class="red">แจ้งเตือนมาใหม่</p></li>';
$.each(result.unread, function (i, data) {
tag += '<li><a href="javascript:window_open_from_root(' + temp + root + '/read_notification_url/' + data.id + '?url=' + data.data.url + temp + ');"><div class="badge-noti">New</div><span class="message">' + data.data.title + '</span><span class="time"> ' + GetDayStringFromDate(data.created_at)+'</span></a></li>';
});
}
if (result.readed.length > 0) {
tag += '<li><p class="green">แจ้งเตือนที่อ่านแล้ว</p></li>';
$.each(result.readed, function (i, data) {
tag += '<li><a href="javascript:window_open_from_root(' + temp + root + '/read_notification_url/' + data.id + '?url=' + data.data.url + temp + ');"><span class="message">' + data.data.title + '</span><span class="time"> ' + GetDayStringFromDate(data.created_at) +'</span></a></li>';
});
}
tag += '<li style="margin-bottom: -8px; text-align: center;"><a href="javascript:window_open_from_root('+temp+root+'/notifications'+temp+');">ดูทั้งหมด</a ></li >';
tag += '</ul>';
}
$(mynoti).append(tag);
endLoad();
};
var noti_error = function (xhr, status, error) {
var errorMessage = xhr.responseText;
console.log("noti error = " + errorMessage);
endLoad();
}
startLoad();
AjaxGetRequest(noti_url, refresh_noti, noti_error);
}
function GetMenu(module, mymenu, menu_url){
var refresh_menu = function (result) {
$.each(result, function (i, data) {
var tmp = "'";
var tag = '';
if(typeof(data.submenu) === "undefined"){
tag = '<li class="sub-menu">';
tag += '<li><a style="font-weight:bold;" href="javascript:window_open_from_root('+tmp+data.url+tmp+');" class=""><span class="menu-dot">&middot;</span>'+data.name+'</a>';
tag += '</li>';
}else{
tag = '<a href="#" class="disabled">'+data.name+'</a>';
tag += GetSubMenu(data.submenu);
}
$(mymenu).append($(tag));
});
endLoad();
};
var menu_error = function (xhr, status, error) {
var errorMessage = xhr.responseText;
console.log("menu error = "+errorMessage);
endLoad();
}
startLoad();
AjaxGetRequest(menu_url, refresh_menu, menu_error);
}
function coreFormatPrice(value, digits) {
var currency = 0;
if (value) {
currency = (value / 1).toFixed(digits);
} else {
currency = currency.toFixed(digits);
}
return currency.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
function coreCurrencyToDecimal(currency) {
var number = 0;
if (currency) {
number = Number(currency.replace(/[^0-9.-]+/g, ""));
}
return number;
}
function coreIsNumber(event) {
var charCode = (event.which) ? event.which : event.keyCode;
console.log("charCode",charCode);
if (charCode > 31 && (charCode < 48 || charCode > 57)){
event.preventDefault();
}else{
return true;
}
}