doctype html
html
style(type='text/css').
.nested_task .gantt_add{
display: none !important;
}
.updColor{
background-color:#ffeb8a!important;
display: none !important;
}
head
title Munka nyílvántartó
h2.contHeader(id='title') #{title}
br
link(rel='stylesheet' href='/bower_components/bootstrap/dist/css/bootstrap.css')
link(rel='stylesheet', href='/bower_components/bootstrap/dist/css/bootstrap.min.css')
link(rel='stylesheet', href='//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css')
link(rel='stylesheet' href='/bower_components/jquery-typeahead/dist/jquery.typeahead.min.css')
style.
div.a {
text-indent: 50px;
}
body
#form-group(style='margin-left:20px')
.row
.col-sm-2
select.form-control(id='employeesel',name='employeesel',value=0, tabindex='29', style='background-color:#2C3446;color: #FFFFFF; width: 200px')
option(value='All',selected) Mindenki
each option in employee
option(value=(option.name)) #{option.name}
.col-sm-3
button.btn.btn-default(type='button' id='ajaxSubmit') Új
.col-sm-3
a.btn.btn-success(href='/employee/accesslist') Vissza
br
#form-group
meta(http-equiv='Content-type', content='text/html; charset=utf-8')
script(src='https://cdn.dhtmlx.com/gantt/edge/dhtmlxgantt.js')
link(href='https://cdn.dhtmlx.com/gantt/edge/dhtmlxgantt.css', rel='stylesheet')
style(type='text/css').
html, body{
height:100%;
padding:0px;
margin:0px;
overflow: hidden;
}
#gantt_here(style='width:100%; height:100%;')
script(src='../gantt/locale/locale_hu.js', charset='utf-8')
script(src='/bower_components/jquery/dist/jquery.js')
script(type='text/javascript', src='/bower_components/jquery/dist/jquery.min.js')
script(type='text/javascript', src='/bower_components/moment/min/moment.min.js')
script(src='/bower_components/bootstrap/dist/js/bootstrap.js')
//script(type='text/javascript', src='https://cdn.dhtmlx.com/gantt/edge/ext/dhtmlxgantt_marker.js')
script.
$("#ajaxSubmit").click(function()
{
var taskId = gantt.createTask({
id:10,
text:"Task #5",
start_date: new Date(),
//end_date: new Date(),
duration:3
}, "project_2", 2);
gantt.showLightbox(taskId)
});
// $("#mworkers").click();
$("#listholidaysadd").addClass("active");
gantt.plugins({
marker: true
});
// Employee list get AJAX
$.get( 'get_employee_list', function(data) {
$('#results').html(data);
// Ligfhtbox customization
var emps=[];
$.each(data,function (idx,emp){
emps.push({'key':emp._id,'label':emp.name})
//console.log(emp); a(href='#',id='1', data-value='worktimeControl') Munkaidő rögzítés
})
gantt.config.lightbox.sections = [
//{name:"description", height:38, map_to:"text", type:"textarea", focus:true},
{name:"employee", height:22, map_to:"employee", type:"select", options: emps, focus:true,
/*onchange:function(){
alert('jajj');
}*/},
{name:"time", height:72, type:"time", map_to:"auto",time_format:["%Y","%m","%d"]}
];
});
// Alkalmazottak szűrése dropdown szerint
gantt.attachEvent("onBeforeTaskDisplay", function(id, task){
var selText= document.getElementById("employeesel").value
//console.log(selText);
if (selText==='All') return true;
if (task.text == selText){
return true;
}
return false;
});
$("#employeesel").click(function () {
gantt.refreshData();
});
gantt.locale.labels.section_employee = "Dolgozó";
// TEST {name:"template", height:16, type:"template", map_to:"my_template"},
/*gantt.attachEvent("onLightboxSave", function(id, task, is_new){
var taskStart = moment(task.start_date);
var taskEnd = moment(task.end_date);
var scaleStart = gantt.config.start_date;
var scaleEnd = gantt.config.end_date;
console.log(task);
// Munkavállaló adatainak lekérése
$.get( 'get_employee_list/'+task.employee, function(data) {
$('#results').html(data);
var selectedRange = taskEnd.diff(taskStart,'days');
var unusedDays=(data.vacationYear-data.vacationUsed);
console.log('Talált: '+data.name+' Össz: '+data.vacationYear+' Kiadott: '+data.vacationUsed+' Kiadható: '+unusedDays+' Intervallum: '+ selectedRange);
// check if the task is out of the range
if(selectedRange >unusedDays ){
gantt.message({
type:"warning",
text:"Maximum "+unusedDays+" nap szabadság adható ki!",
expire:5000
});
return false;
}
// Szabadság mentése
var used=(data.vacationUsed+selectedRange);
var data={employeeId:task.employee,content:used};
$.ajax({
type: 'POST',
data: JSON.stringify(data),
contentType: "application/json",
dataType:'json',
url: '/employee/update_employee_holidaysById',
success: function(data) {
alert("Success!");
},
error: function(error) {
console.log("some error in fetching the notifications");
alert("Hiba!");
}
})
return true;
});
});*/
// Task childtask hozzáadás gombelrejtése
gantt.templates.grid_row_class = function( start, end, task ){
//console.log(task);
if ( task.$level >=0)
{
// console.log("nested");
return "nested_task"
}
return "";
};
//Read only
function isEditableTask(task){
var dt= moment(task.end_date).isBefore(new Date());
//if (dt===false)
return dt ;
}
gantt.attachEvent("onBeforeTaskDrag", function(task){
var dt= moment(task.end_date).isBefore(new Date());
return !dt;
});
gantt.attachEvent("onBeforeLightbox", function(task){
var dt= moment(task.end_date).isBefore(new Date());
//console.log(dt);
if (!dt)
{
return false;
}
else
{
return true;
}
});
/*gantt.attachEvent("onTaskLoading", function(task){
var dt= moment(task.end_date).isBefore(new Date());
if (dt===true){
// task.readOnly=true;//moment(task.end_date).isBefore(new Date());
//task.color='gray';
}
//task.editable = task.has_owner && task.editable && task.text;
return true;
});*/
// Header task hozzáadás gomb elrejtése
/*gantt.templates.grid_header_class = function(columnName, column){
if(columnName == 'add' )
return "updColor";
};*/
gantt.config.columns=[
{name:"text", label:"Dolgozó", tree:true, width:'*' },
{name:"start_date", label:"Kezdési idő", align: "center" },
{name:"duration", label:"Időtartam", align: "center" },
{name:"add", label:"", width:44, hide:true }
];
gantt.config.open_split_tasks = true;
var date_to_str = gantt.date.date_to_str(gantt.config.task_date);
var markerId = gantt.addMarker({
start_date: new Date(),
css: "today",
text: "Most",
title:date_to_str( new Date())
});
gantt.getMarker(markerId); //->{css:"today", text:"Now", id:...}
// gantt.locale.labels.section_priority = "Priority";
gantt.init("gantt_here");
// gantt.parse(tasks);
gantt.load("/employee/data");
var dp = new gantt.dataProcessor("/employee/api");
dp.init(gantt);
dp.setTransactionMode("REST");