Files
ihrm/templates/dashboard.html

529 lines
21 KiB
HTML
Raw Normal View History

{% load static %} {% load basefilters %} {% load recruitmentfilters %} {% load i18n %} {% load tz %} {% now "Y-m-d" as current_date %}
2023-05-10 15:06:57 +05:30
<div id="mainNav"></div>
<!-- End of Navigation -->
<style>
.oh-card-dashboard--moveable {
2023-05-10 15:06:57 +05:30
padding: 0 10px 20px 10px;
}
2023-10-13 16:28:17 +05:30
.oh-card-dashboard:not(.tile) {
cursor: default;
min-height: 425px;
}
.oh-dashboard__movable-cards {
2023-10-13 16:28:17 +05:30
padding-right: 0;
}
.oh-card-dashboard--moveable {
2023-10-13 16:28:17 +05:30
padding-right: 0;
padding-bottom: 10px;
}
2023-05-10 15:06:57 +05:30
</style>
<main>
<div class="oh-wrapper">
<!-- back button -->
<div class="d-none mt-5" id="back_button" style="width: 10%">
<a
href="{% url 'home-page' %}"
class="oh-btn oh-btn--secondary oh-btn--shadow ms-3"
>
<ion-icon
class="me-2 md hydrated"
name="arrow-back-outline"
role="img"
aria-label="arrow-back-outline"
></ion-icon
>{% trans "Back" %}</a
>
</div>
<!-- end of back button -->
2023-10-13 14:34:52 +05:30
<div class="oh-dashboard row" id="dashboard">
<div class="oh-dashboard__left col-12 col-sm-12 col-md-12 col-lg-9">
2023-05-10 15:06:57 +05:30
<div class="oh-dashboard__cards row">
2023-10-13 14:34:52 +05:30
{% if perms.employee.view_employee %}
2023-05-10 15:06:57 +05:30
<div class="col-12 col-sm-12 col-md-6 col-lg-4">
2023-10-13 16:28:17 +05:30
<div class="oh-card-dashboard oh-card-dashboard--success tile">
2023-10-13 14:34:52 +05:30
<a
href="{% url 'candidate-view' %}?joining_date={{current_date}}"
style="text-decoration: none"
>
<div class="oh-card-dashboard__header">
2023-10-13 14:34:52 +05:30
<span class="oh-card-dashboard__title"
>{% trans "New Joining Today" %}</span
>
2023-05-10 15:06:57 +05:30
</div>
<div class="oh-card-dashboard__body">
<div class="oh-card-dashboard__counts">
2023-10-13 14:34:52 +05:30
<span class="oh-card-dashboard__sign"
><ion-icon name="caret-up-outline"></ion-icon
></span>
<span
class="oh-card-dashboard__count"
id="newbieToday"
></span>
</div>
2023-10-13 14:34:52 +05:30
<span
class="oh-badge oh-card-dashboard__badge"
id="newbieTodayPerc"
>0%</span
>
</div>
</a>
2023-05-10 15:06:57 +05:30
</div>
</div>
<div class="col-12 col-sm-12 col-md-6 col-lg-4">
2023-10-13 14:34:52 +05:30
<div
2023-10-13 16:28:17 +05:30
class="oh-card-dashboard oh-card-dashboard oh-card-dashboard--warning tile"
2023-10-13 14:34:52 +05:30
>
<a
href="{% url 'candidate-view' %}?scheduled_from={{first_day_of_week}}&scheduled_till={{last_day_of_week}}"
style="text-decoration: none"
>
<div class="oh-card-dashboard__header">
2023-10-13 14:34:52 +05:30
<span class="oh-card-dashboard__title"
>{% trans "New Joining This Week" %}</span
>
2023-05-10 15:06:57 +05:30
</div>
<div class="oh-card-dashboard__body">
<div class="oh-card-dashboard__counts">
2023-10-13 14:34:52 +05:30
<span class="oh-card-dashboard__sign"
><ion-icon name="caret-up-outline"></ion-icon
></span>
<span class="oh-card-dashboard__count" id="newbie">12</span>
</div>
2023-10-13 14:34:52 +05:30
<span
class="oh-badge oh-card-dashboard__badge"
id="newbiePerc"
>0%</span
>
</div>
</a>
2023-05-10 15:06:57 +05:30
</div>
</div>
<div class="col-12 col-sm-12 col-md-6 col-lg-4">
2023-10-13 14:34:52 +05:30
<a href="{% url 'employee-view' %}" style="text-decoration: none">
2023-10-13 16:28:17 +05:30
<div class="oh-card-dashboard oh-card-dashboard--neutral tile">
<div class="oh-card-dashboard__header">
2023-10-13 14:34:52 +05:30
<span class="oh-card-dashboard__title"
>{% trans "Total Strength" %}</span
>
</div>
<div class="oh-card-dashboard__body">
<div class="oh-card-dashboard__counts">
2023-10-13 14:34:52 +05:30
<span
class="oh-card-dashboard__count"
id="totalEmployeesCount"
>100%</span
>
</div>
2023-10-13 14:34:52 +05:30
<span
class="oh-badge oh-card-dashboard__badge"
id="totalEmployeesCountPerc"
>100%</span
>
2023-05-10 15:06:57 +05:30
</div>
</div>
</a>
</div>
2023-08-01 16:49:53 +05:30
{% endif %}
2023-10-13 14:34:52 +05:30
<div class="oh-dashboard__movable-cards row mt-4" id="tileContainer">
{% if perms.leave.veiw_leaverequest %}
2023-10-13 14:34:52 +05:30
<div
class="col-12 col-sm-12 col-md-12 col-lg-4 oh-card-dashboard--moveable"
id="movable1"
>
<div
class="oh-card-dashboard oh-card-dashboard--no-scale oh-card-dashboard--transparent"
>
<div
class="oh-card-dashboard__header oh-card-dashboard__header--divider"
>
<span class="oh-card-dashboard__title"
>{% trans "Overall Leave" %}</span
>
<select
class="oh-select oh-select--sm float-end"
name=""
id="overAllLeaveSelect"
>
<option value="today" selected>{% trans "Today" %}</option>
<option value="week">{% trans "This Week" %}</option>
<option value="month">{% trans "This Month" %}</option>
<option value="year">{% trans "This Year" %}</option>
</select>
</div>
<div class="oh-card-dashboard__body">
<canvas id="overAllLeave" style="cursor: pointer"></canvas>
</div>
2023-05-10 15:06:57 +05:30
</div>
</div>
{% endif %} {% if perms.candidate.view_candidate or request.user|is_stagemanager %}
2023-10-13 14:34:52 +05:30
<div
class="col-12 col-sm-12 col-md-12 col-lg-6 oh-card-dashboard--moveable"
id="movable2"
>
<div
class="oh-card-dashboard oh-card-dashboard--no-scale oh-card-dashboard--transparent"
>
<div
class="oh-card-dashboard__header oh-card-dashboard__header--divider"
>
<span class="oh-card-dashboard__title"
>{% trans "Hired Candidates" %}</span
>
</div>
<div class="oh-card-dashboard__body">
<canvas id="hiredCandidate" style="cursor: pointer"></canvas>
</div>
2023-05-10 15:06:57 +05:30
</div>
</div>
2023-10-13 14:34:52 +05:30
<div
class="col-12 col-sm-12 col-md-12 col-lg-6 oh-card-dashboard--moveable"
id="movable3"
>
<div
class="oh-card-dashboard oh-card-dashboard--no-scale oh-card-dashboard--transparent"
>
<div
class="oh-card-dashboard__header oh-card-dashboard__header--divider"
>
<span class="oh-card-dashboard__title"
>{% trans "Candidate Started Onboarding" %}</span
>
</div>
<div class="oh-card-dashboard__body">
<canvas
id="onboardCandidate"
style="cursor: pointer"
></canvas>
</div>
2023-05-10 15:06:57 +05:30
</div>
</div>
{% endif %} {% if request.user|is_stagemanager or perms.recruitment.view_recruitment %}
2023-10-13 14:34:52 +05:30
<div
class="col-12 col-sm-12 col-md-12 col-lg-6 oh-card-dashboard--moveable"
id="movable8"
>
<div
class="oh-card-dashboard oh-card-dashboard--no-scale oh-card-dashboard--transparent"
>
<div
class="oh-card-dashboard__header oh-card-dashboard__header--divider"
>
<span class="oh-card-dashboard__title"
>{% trans "Recruitment Analytic" %}</span
>
</div>
<div class="oh-card-dashboard__body">
<canvas
id="recruitmentChart1"
style="cursor: pointer"
></canvas>
</div>
2023-05-10 15:06:57 +05:30
</div>
</div>
{% endif %} {% if request.user|is_reportingmanager or perms.attendance.view_attendance %}
2023-10-13 14:34:52 +05:30
<div
class="col-12 col-sm-12 col-md-12 col-lg-6 oh-card-dashboard--moveable"
id="movable4"
>
<div
class="oh-card-dashboard oh-card-dashboard--no-scale oh-card-dashboard--transparent"
>
<div
class="oh-card-dashboard__header oh-card-dashboard__header--divider"
id="attendance_header"
>
<div class="oh-card-dashboard__title mb-2">
{% trans "Attendance Analytic" %}
</div>
<div class="d-flex justify-content-between mb-2">
<select
id="type"
class="oh-select"
name="type"
onchange="changeView(this)"
style="width: 150px; padding: 3px; color: #5e5c5c"
>
<option value="day">Day</option>
<option value="weekly">Weekly</option>
<option value="monthly">Monthly</option>
<option value="date_range">Date range</option>
</select>
<span id="day_input">
<input
type="date"
class="mb-2 float-end pointer oh-select"
id="attendance_month"
onchange="changeMonth()"
style="width: 100px; color: #5e5c5c"
/>
</span>
</div>
<div class="oh-card-dashboard__body">
<canvas id="dailyAnalytic" style="cursor: pointer"></canvas>
</div>
</div>
</div>
</div>
{% endif %} {% if request.user|is_reportingmanager or perms.attendance.view_attendance %}
<div
class="col-12 col-sm-12 col-md-12 col-lg-6 oh-card-dashboard--moveable"
id="pendingHours"
>
<div
class="oh-card-dashboard oh-card-dashboard--no-scale oh-card-dashboard--transparent"
>
<div
class="oh-card-dashboard__header oh-card-dashboard__header--divider"
id="pendingHoursHeader"
2023-10-17 10:04:53 +05:30
>
<div class="oh-card-dashboard__title mb-2">
{% trans "Hours Chart" %}
</div>
<div class="d-flex justify-content-between mb-2">
2023-10-13 16:28:17 +05:30
<input
type="month"
2023-10-13 16:28:17 +05:30
class="mb-2 float-end pointer oh-select"
id="hourAccountMonth"
onchange="dynamicMonth($(this))"
style="width: 100px; color: #5e5c5c"
2023-10-13 16:28:17 +05:30
/>
</div>
<div class="oh-card-dashboard__body">
<canvas
id="pendingHoursCanvas"
style="cursor: pointer"
></canvas>
2023-10-13 14:34:52 +05:30
</div>
</div>
2023-05-10 15:06:57 +05:30
</div>
</div>
{% endif %} {% if request.user|is_reportingmanager or perms.attendance.view_employee %}
2023-10-13 14:34:52 +05:30
<div
class="col-12 col-sm-12 col-md-12 col-lg-4 oh-card-dashboard--moveable"
id="movable5"
>
<div
class="oh-card-dashboard oh-card-dashboard--no-scale oh-card-dashboard--transparent"
>
<div
class="oh-card-dashboard__header oh-card-dashboard__header--divider"
>
<span class="oh-card-dashboard__title"
>{% trans "Employees Chart" %}</span
>
</div>
<div class="oh-card-dashboard__body">
<canvas id="totalEmployees" style="cursor: pointer"></canvas>
2023-10-13 14:34:52 +05:30
</div>
2023-05-10 15:06:57 +05:30
</div>
</div>
{% endif %} {% if perms.employee.view_employee or request.user|is_reportingmanager %}
2023-10-13 14:34:52 +05:30
<div
class="col-12 col-sm-12 col-md-12 col-lg-4 oh-card-dashboard--moveable"
id="movable6"
>
<div
class="oh-card-dashboard oh-card-dashboard--no-scale oh-card-dashboard--transparent"
>
<div
class="oh-card-dashboard__header oh-card-dashboard__header--divider"
>
<span class="oh-card-dashboard__title"
>{% trans "Department Chart" %}</span
>
</div>
<div class="oh-card-dashboard__body">
<canvas id="departmentChart" style="cursor: pointer"></canvas>
2023-10-13 14:34:52 +05:30
</div>
2023-05-10 15:06:57 +05:30
</div>
</div>
{% endif %} {% if perms.employee.view_employee or request.user|is_reportingmanager %}
2023-10-13 14:34:52 +05:30
<div
class="col-12 col-sm-12 col-md-12 col-lg-4 oh-card-dashboard--moveable"
id="movable7"
>
<div
class="oh-card-dashboard oh-card-dashboard--no-scale oh-card-dashboard--transparent"
>
<div
class="oh-card-dashboard__header oh-card-dashboard__header--divider"
>
<span class="oh-card-dashboard__title"
>{% trans "Gender Chart" %}</span
>
</div>
<div class="oh-card-dashboard__body">
<canvas id="genderChart" style="cursor: pointer"></canvas>
</div>
2023-05-10 15:06:57 +05:30
</div>
2023-10-13 14:34:52 +05:30
</div>
{% endif %} {% if perms.pms.view_employeeobjective or request.user|is_reportingmanager %}
2023-10-13 14:34:52 +05:30
<div
class="col-12 col-sm-12 col-md-12 col-lg-4 oh-card-dashboard--moveable"
id="movable9"
>
<div
class="oh-card-dashboard oh-card-dashboard--no-scale oh-card-dashboard--transparent"
>
<div
class="oh-card-dashboard__header oh-card-dashboard__header--divider"
>
<span class="oh-card-dashboard__title"
>{% trans "Objective status" %}</span
>
</div>
<div class="oh-card-dashboard__body">
<canvas id="objectiveChart" style="cursor: pointer"></canvas>
2023-10-13 14:34:52 +05:30
</div>
2023-05-10 15:06:57 +05:30
</div>
</div>
{% endif %} {% if perms.pms.view_employeekeyresult or request.user|is_reportingmanager %}
2023-10-13 14:34:52 +05:30
<div
class="col-12 col-sm-12 col-md-12 col-lg-4 oh-card-dashboard--moveable"
id="movable10"
>
<div
class="oh-card-dashboard oh-card-dashboard--no-scale oh-card-dashboard--transparent"
>
<div
class="oh-card-dashboard__header oh-card-dashboard__header--divider"
>
<span class="oh-card-dashboard__title"
>{% trans "Key result status" %}</span
>
</div>
<div class="oh-card-dashboard__body">
<canvas id="keyResultChart" style="cursor: pointer"></canvas>
2023-10-13 14:34:52 +05:30
</div>
2023-05-10 15:06:57 +05:30
</div>
</div>
{% endif %} {% if perms.pms.view_feedback or request.user|is_reportingmanager %}
2023-10-13 14:34:52 +05:30
<div
2023-10-13 16:28:17 +05:30
class="col-12 col-sm-12 col-md-12 col-lg-4 oh-card-dashboard--moveable"
2023-10-13 14:34:52 +05:30
id="movable11"
>
<div
class="oh-card-dashboard oh-card-dashboard--no-scale oh-card-dashboard--transparent"
>
<div
class="oh-card-dashboard__header oh-card-dashboard__header--divider"
>
<span class="oh-card-dashboard__title"
>{% trans "Feedback Status" %}</span
2023-10-13 14:34:52 +05:30
>
</div>
<div class="oh-card-dashboard__body">
2023-10-13 16:28:17 +05:30
<div class="oh-card-dashboard__body">
<canvas id="feedbackChart" style="cursor: pointer"></canvas>
</div>
2023-10-13 14:34:52 +05:30
</div>
2023-08-01 16:49:53 +05:30
</div>
</div>
2023-10-13 14:34:52 +05:30
{% endif %}
2023-05-10 15:06:57 +05:30
</div>
</div>
</div>
{% if perms.leave.view_leaverequest or request.user|is_reportingmanager%}
2023-10-13 14:34:52 +05:30
<div class="oh-dashboard__right col-12 col-sm-12 col-md-12 col-lg-3">
<div class="oh-dashboard__events">
2023-10-13 14:34:52 +05:30
<div
class="oh-dashbaord__events-reel w-100"
id="birthdayContainer"
></div>
<ul class="oh-dashboard__events-nav" id="birthdayDots">
2023-10-13 14:34:52 +05:30
{% comment %}
<li
class="oh-dashboard__events-nav-item oh-dashboard__events-nav-item--active"
data-target="0"
></li>
<li class="oh-dashboard__events-nav-item" data-target="1"></li>
2023-10-13 14:34:52 +05:30
<li class="oh-dashboard__events-nav-item" data-target="2"></li>
{% endcomment %}
</ul>
</div>
2023-10-13 14:34:52 +05:30
<div
class="oh-card-dashboard oh-card-dashboard--no-scale oh-card-dashboard--transparent"
>
<div
class="oh-card-dashboard__header oh-card-dashboard__header--divider"
>
<span class="oh-card-dashboard__title">{% trans "On Leave" %}</span>
</div>
<div class="oh-card-dashboard__body">
2023-10-13 14:34:52 +05:30
<ul class="oh-card-dashboard__user-list" id="leaveEmployee"></ul>
</div>
</div>
</div>
{% endif %}
2023-05-10 15:06:57 +05:30
</div>
</div>
</main>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
{% if perms.recruitment.view_recruitment or request.user|is_stagemanager %}
<script src="{% static 'dashboard/recruitmentChart.js' %}"></script>
{% endif %} {% if perms.employee.view_employee or request.user|is_reportingmanager %}
2023-05-10 15:06:57 +05:30
<script src="{% static 'dashboard/employeeChart.js' %}"></script>
<script src="{% static 'dashboard/getBirthday.js' %}"></script>
{% endif %} {% if perms.employee.view_attendance or request.user|is_reportingmanager %}
2023-05-10 15:06:57 +05:30
<script src="{% static 'dashboard/attendanceChart.js' %}"></script>
{% endif %}
<!-- leave dashboard -->
<script src="{% static 'dashboard/leaveChart.js' %}"></script>
<!-- onbaording dashboard -->
<script src="{% static 'dashboard/onboardChart.js' %}"></script>
<!-- PMS chart -->
<script src="{% static 'src/dashboard/pmsChart.js' %}"></script>
<script>
$(document).ready(function () {
var tileOrder = []
$.each(
$(".oh-card-dashboard--moveable"),
function (indexInArray, valueOfElement) {
tileOrder.push($(valueOfElement).attr("id"));
}
);
2023-11-16 14:43:06 +05:30
// localStorage.setItem("tileOrder", JSON.stringify(tileOrder));
function orderDashboardTile() {
2023-10-13 14:34:52 +05:30
var orderIds = JSON.parse(localStorage.getItem("tileOrder"));
const parentContainer = $("#tileContainer");
if (orderIds != null) {
const sortedElements = [];
// Loop through the desired order of IDs
for (const id of orderIds) {
2023-10-13 14:34:52 +05:30
const element = $("#" + id);
if (element.length) {
sortedElements.push(element);
}
}
// Clear the parent container
parentContainer.empty();
// Append the sorted elements to the parent container
for (const element of sortedElements) {
parentContainer.append(element);
}
}
}
2023-10-13 14:34:52 +05:30
orderDashboardTile();
$(".oh-card-dashboard--moveable").mouseup(function () {
2023-10-13 14:34:52 +05:30
var tileOrder = [];
setTimeout((e) => {
$.each(
$(".oh-card-dashboard--moveable"),
function (indexInArray, valueOfElement) {
tileOrder.push($(valueOfElement).attr("id"));
}
);
localStorage.setItem("tileOrder", JSON.stringify(tileOrder));
2023-11-16 14:43:06 +05:30
}, 10);
});
});
2023-10-13 14:34:52 +05:30
</script>