181 lines
7.6 KiB
Plaintext
181 lines
7.6 KiB
Plaintext
extends layout
|
|
|
|
block content
|
|
link(rel='stylesheet' href='/bower_components/jquery-typeahead/dist/jquery.typeahead.min.css')
|
|
|
|
link(rel='stylesheet', href='https://use.fontawesome.com/releases/v5.6.1/css/all.css', integrity='sha384-gfdkjb5BdAXd+lj+gudLWI+BXq4IuLW5IT+brZEZsLFm++aCMlF1V92rMkPaX4PP', crossorigin='anonymous')
|
|
link(href='https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.13.1/css/all.css' rel='stylesheet')
|
|
style(type="text/css").
|
|
#calendar {
|
|
height: 100%;
|
|
margin: 40px auto;
|
|
}
|
|
.fc-event.hidden {
|
|
display: none;
|
|
}
|
|
.badge{
|
|
position: relative !important;
|
|
right: -1.7em !important;
|
|
top: -0.7em !important;
|
|
|
|
|
|
}
|
|
|
|
//-.container#wrapper(style='width:100%;')
|
|
.mainContainer
|
|
.panel.panel-primary
|
|
.panel-heading
|
|
h2.contHeader #{title}
|
|
.panel-body
|
|
|
|
.container(style='width:100%; ')
|
|
button.btn.btn-warning(id='toggleAll',class='toggleAll',style='margin-right:4px;margin-bottom: 4px',data-view='auto') Mind elrejt
|
|
.container#buttonsEmp(style='width:100%; ')
|
|
each employee, l in employees
|
|
button.btn.btn-none(id=employee._id,class='toggle',style='width:200px;margin-right:4px;margin-bottom: 4px; color:white',data-index=l,data-empId=employee._id,data-view='auto',data-color=employee.color)&attributes({'style': 'background-color:'+employee.color})
|
|
| #{employee.name}
|
|
span.badge.badge-warning
|
|
| #{employee.vacationYear+'/'+employee.vacationUsed}
|
|
|
|
#calendar(style="background-color: white")
|
|
script(src='/bower_components/jquery/dist/jquery.js')
|
|
script(src='https://cdn.jsdelivr.net/npm/fullcalendar/index.global.min.js')
|
|
//-script(src='https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js')
|
|
script(src='https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js')
|
|
script(type='text/javascript').
|
|
$(document).ready(async function() {
|
|
//var toggle=[];
|
|
//const response = await fetch('/gantt_holidays/getcolors');
|
|
//const colors = await response.json();
|
|
var calendarEl = document.getElementById('calendar');
|
|
var calendar = new FullCalendar.Calendar(calendarEl, {
|
|
initialView: 'multiMonthYear',
|
|
locale: 'hu',
|
|
firstDay: 1,
|
|
eventLimit:true,
|
|
dayMaxEvents: 10,
|
|
dayMaxEventRows: 10,
|
|
displayEventTime: false,
|
|
editable: false,
|
|
height: 'auto',
|
|
//initialEvents: res,
|
|
events: '/gantt_holidays/data/all/'+moment().format("YYYY"),
|
|
weekNumbers: true,
|
|
themeSystem: 'default',
|
|
eventClick: function(info) {
|
|
//alert('Event: ' + info.event.title+'\n'+info.event.id+'\n'+info.event.extendedProps.employeeId);
|
|
console.log('Event: ' + info.event.title+'\n'+info.event.id+'\n'+info.event.extendedProps.employeeId)
|
|
|
|
// change the border color just for fun
|
|
info.el.style.borderColor = 'red';
|
|
},
|
|
// ÉV választás
|
|
datesSet: async function (info) {
|
|
calendar.removeAllEventSources();
|
|
calendar.addEventSource('/gantt_holidays/data/all/'+moment(info.view.activeStart).format("YYYY"))
|
|
|
|
//Az összes gomb visszaállítása.
|
|
const buttonsEmp = document.querySelectorAll('.toggle')
|
|
|
|
buttonsEmp.forEach(await function(currentBtn){
|
|
currentBtn.style='\
|
|
width:200px; \
|
|
margin-right: \
|
|
4px;margin-bottom: 4px; \
|
|
color: white; \
|
|
background-color:'+currentBtn.dataset.color
|
|
|
|
})
|
|
}
|
|
|
|
});
|
|
|
|
calendar.render();
|
|
function handleEvent(ev)
|
|
{
|
|
const empid=ev.target.dataset.empid
|
|
const btnIndex=ev.target.dataset.index
|
|
var visible=ev.target.dataset.view
|
|
if (visible=='auto')
|
|
{
|
|
//ev.target.className='btn btn-none col-sm-1 toggle'
|
|
ev.target.dataset.view='none'
|
|
ev.target.style='margin-right:4px;margin-bottom: 4px;'
|
|
}
|
|
else
|
|
{
|
|
//ev.target.className='btn btn-none col-sm-1 toggle'
|
|
ev.target.dataset.view='auto'
|
|
ev.target.style='margin-right:4px;margin-bottom: 4px; background-color:'+ev.target.dataset.color//colors[btnIndex]
|
|
|
|
}
|
|
|
|
console.log(empid)
|
|
let event = calendar.getEventById(empid)
|
|
let eventList=calendar.getEvents();
|
|
eventList.forEach(function(evt){
|
|
if (evt.extendedProps.employeeId==empid)
|
|
{
|
|
evt.setProp('display', ev.target.dataset.view ) ;
|
|
}
|
|
})
|
|
|
|
}
|
|
|
|
async function handleEventAll(ev)
|
|
{
|
|
|
|
var visible=ev.target.dataset.view
|
|
//console.log('Before'+ev.target.dataset.view)
|
|
if (visible=='auto')
|
|
{
|
|
ev.target.className='btn btn-none toggleAll'
|
|
ev.target.dataset.view='none'
|
|
ev.target.dataset.textContent='Mind látszik'
|
|
ev.target.dataset.url='/gantt_holidays/data/none'
|
|
|
|
}
|
|
else
|
|
{
|
|
ev.target.className='btn btn-warning toggleAll'
|
|
ev.target.dataset.view='auto'
|
|
ev.target.dataset.textContent='Mind elrejt'
|
|
ev.target.dataset.url='/gantt_holidays/data/all'
|
|
|
|
}
|
|
ev.target.textContent=ev.target.dataset.textContent
|
|
//console.log('After'+ev.target.dataset.view)
|
|
calendar.removeAllEventSources();
|
|
calendar.addEventSource(ev.target.dataset.url+moment(calendar.currentData.currentDate).format("YYYY"))
|
|
|
|
const buttons = document.querySelectorAll('.toggle')
|
|
|
|
buttons.forEach(await function(currentBtn){
|
|
if (ev.target.dataset.view=='auto')
|
|
{
|
|
currentBtn.style='width:200px;margin-right:4px;margin-bottom: 4px; color: white;background-color:'+currentBtn.dataset.color
|
|
}
|
|
else
|
|
{
|
|
currentBtn.style='width:200px;margin-right:4px;margin-bottom: 4px; color:black'
|
|
|
|
}
|
|
currentBtn.dataset.view=ev.target.dataset.view
|
|
})
|
|
}
|
|
|
|
|
|
const buttons = document.querySelectorAll('.toggle')
|
|
buttons.forEach(function(currentBtn){
|
|
currentBtn.addEventListener('click', handleEvent)
|
|
})
|
|
const buttonAll = document.getElementById('toggleAll')
|
|
|
|
buttonAll.addEventListener('click', handleEventAll)
|
|
|
|
//document.querySelector(".toggle").addEventListener('click',function(ev) {
|
|
|
|
//calendar.changeView('timeGridWeek');
|
|
|
|
|
|
}) |