LittleDemon WebShell


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/
File Upload :
Command :
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);
    });
});

LittleDemon - FACEBOOK
[ KELUAR ]