| Linux in-mum-web1499.main-hosting.eu 5.14.0-503.40.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Mon May 5 06:06:04 EDT 2025 x86_64 Path : /home/u901718425/domains/portal.urbanpillar.in/public_html/ |
| Current File : /home/u901718425/domains/portal.urbanpillar.in/public_html/dashboard.js |
// Calender
function renderCalendar(year, month) {
const date = new Date(year, month);
const currentMonth = date.getMonth();
const currentYear = date.getFullYear();
const firstDay = new Date(currentYear, currentMonth, 1).getDay();
const daysInMonth = new Date(currentYear, currentMonth + 1, 0).getDate();
const today = new Date();
let calendarHtml = `
<div class="d-flex justify-content-between align-items-center mb-2">
<button class="btn btn-sm btn-outline-secondary rounded-0 border-0 p-2 d-flex justify-content-center align-content-center fs-8 " id="prevMonth"><i class="fas fa-chevron-left"></i></button>
<strong class="fs-5 text-dark">${date.toLocaleString('default', { month: 'long' })} ${currentYear}</strong>
<button class="btn btn-sm btn-outline-secondary rounded-0 border-0 p-2 d-flex justify-content-center align-content-center fs-8 " id="nextMonth"><i class="fas fa-chevron-right"></i></button>
</div>
<div class="row m-0 gap-1 fs-8">
<div class="dateCol fw-bold">Sun</div>
<div class="dateCol fw-bold">Mon</div>
<div class="dateCol fw-bold">Tue</div>
<div class="dateCol fw-bold">Wed</div>
<div class="dateCol fw-bold">Thu</div>
<div class="dateCol fw-bold">Fri</div>
<div class="dateCol fw-bold">Sat</div>
`;
let day = 1;
for (let i = 0; i < 6; i++) {
calendarHtml += '';
for (let j = 0; j < 7; j++) {
if ((i === 0 && j < firstDay) || day > daysInMonth) {
calendarHtml += '<div class="dateCol"></div>';
} else {
const isToday =
day === today.getDate() &&
currentMonth === today.getMonth() &&
currentYear === today.getFullYear();
calendarHtml += `<div class="dateCol day ${isToday ? 'today' : ''}" data-date="${day}">${day}</div>`;
day++;
}
}
calendarHtml += '';
if (day > daysInMonth) break;
}
calendarHtml += '</div>';
$('#calender').html(calendarHtml);
$('#prevMonth').click(() => renderCalendar(currentYear, currentMonth - 1));
$('#nextMonth').click(() => renderCalendar(currentYear, currentMonth + 1));
highLightDate(currentYear, currentMonth);
}
const today = new Date();
renderCalendar(today.getFullYear(), today.getMonth());
function highLightDate(currentYear, currentMonth) {
$.get('/api/get_attendance_dates.php', {
month: currentMonth + 1,
year: currentYear
}, function (response) {
const attendanceDays = JSON.parse(response);
attendanceDays.forEach(day => {
$(`#calender .day[data-date="${day}"]`).addClass('highlight');
});
});
$.get('/api/get_leave_dates.php', {
month: currentMonth + 1,
year: currentYear
}, function (response) {
const attendanceDays = JSON.parse(response);
console.log(attendanceDays);
attendanceDays.forEach(({day, type}) => {
const $dayElement = $(`#calender .day[data-date="${day}"]`);
if (type.toLowerCase() === 'leave') {
$dayElement.addClass('bg-danger text-white');
} else if (type.toLowerCase() === 'wfh') {
$dayElement.addClass('bg-warning text-dark');
} else if (type.toLowerCase().includes('first half')) {
$dayElement.addClass('bg-info text-dark'); // Optional class for first half
} else if (type.toLowerCase().includes('second half')) {
$dayElement.addClass('bg-primary text-white'); // Optional class for second half
} else {
$dayElement.addClass('highlight text-dark'); // default case
}
});
});
}
function loadUsers() {
$.get('/api/get_user_target.php', function (data) {
$('#weekly').html('');
console.log(data);
data.task && data.task.split(',').forEach((task, index) => {
$('#weekly').append(`<div class="d-flex align-items-center border-bottom py-2">
<div class="w-100">
<span>${index + 1}. </span>
<span>${task}</span>
</div>
</div>
`);
});
}, 'json');
}
loadUsers();
let todo = JSON.parse(localStorage.getItem('todo')) || [];
function showToDo(todo) {
$('#todoList').html('');
todo.forEach((element, index) => {
$('#todoList').append(`<div class="d-flex align-items-center border-bottom py-2">
<div class="w-100 ms-3">
<div class="d-flex w-100 align-items-center text-dark justify-content-between">
<span>${element}</span>
<button class="btn btn-sm deleteTodo" id="${index}"><i class="fa fa-times"></i></button>
</div>
</div>
</div>`);
});
}
$(document).ready(function () {
showToDo(todo);
$('#todolistAdd').click(function (e) {
e.preventDefault();
if($('#todolist').val() !== ''){
todo.push($('#todolist').val());
showToDo(todo);
localStorage.setItem('todo', JSON.stringify(todo));
}
});
$(document).on('click','.deleteTodo',function (e) {
e.preventDefault();
console.log('id', this.id);
todo.splice(this.id, 1);
localStorage.setItem('todo', JSON.stringify(todo));
showToDo(todo);
});
});