Files
crm.e5.pl/modules/Tasks.cp/Task.js

202 lines
7.9 KiB
JavaScript
Raw Permalink Normal View History

2024-04-27 09:23:34 +02:00
function updateDateDue() {
document.getElementById('date_due').value =
document.getElementById('date_due_date').value + ' '+
document.getElementById('date_due_hours').value + ':'+
document.getElementById('date_due_minutes').value;
}
function updateDateStart() {
document.getElementById('date_start').value =
document.getElementById('date_start_date').value + ' '+
document.getElementById('date_start_hours').value + ':'+
document.getElementById('date_start_minutes').value;
}
function getCurrentDate() {
var d = new Date();
var m = d.getMonth()+1;
if (m<10) m='0'+m;
var today = d.getDate()+'.'+m+'.'+d.getFullYear();
return today;
}
function getCurrentTime(what) {
var t = new Date();
var h = t.getHours();
var m = t.getMinutes();
//m can only be 0,15,30,45
if (m/15>2.4)
m = 15*Math.floor(m/15);
else
m = 15*(Math.floor(m/15)+1);
if (m<1) m='00';
var act_time = h+':'+m;
if (what==1)
return act_time;
if (what==2)
return h;
if (what==3)
return m;
}
function addEvent(object,eventName,do_function) {
if(typeof(object) == "string") object = document.getElementById(object);
if(!object) { alert('No object in function addEvent!'); return; }
if(object.addEventListener) {
object.addEventListener(eventName, do_function, false);
} else {
object.attachEvent('on'+eventName, do_function);
}
}
function hideFields() {
document.getElementById('date_due_date').style.display='none';
document.getElementById('date_due_trigger').style.display='none';
document.getElementById('date_start_date').style.display='none';
document.getElementById('date_start_trigger').style.display='none';
document.getElementById('job_date_time_section').style.display='none';
if (document.getElementById('all_day').checked==true) {
document.getElementById('date_due_minutes').disabled=true;
document.getElementById('date_due_hours').disabled=true;
document.getElementById('date_start_minutes').disabled=true;
document.getElementById('date_start_hours').disabled=true;
document.getElementById('no_time_finish').disabled=true;
}
if (document.getElementById('no_time_finish').checked==true) {
document.getElementById('date_due_minutes').disabled=true;
document.getElementById('date_due_hours').disabled=true;
}
}
function fillData() {
if (NEW_TASK==1) {
document.getElementById('job_date_date').value = getCurrentDate();
document.getElementById('date_start_date').value = getCurrentDate();
document.getElementById('date_due_date').value = getCurrentDate();
document.getElementById('date_start_hours').value = '08';
document.getElementById('date_start_minutes').value = '00';
document.getElementById('date_due_hours').value = '08';
document.getElementById('date_due_minutes').value = '30';
document.getElementById('job_date_hours').value = '08';
document.getElementById('job_date_minutes').value = '00';
document.getElementById('date_start').value=getCurrentDate()+' 08:00';
document.getElementById('date_due').value=getCurrentDate()+' 08:30';
} else {
document.getElementById('job_date_date').value = document.getElementById('date_start_date').value;
document.getElementById('job_date_hours').value = document.getElementById('date_start_hours').value;
document.getElementById('job_date_minutes').value = document.getElementById('date_start_minutes').value;
}
}
//onStart
addEvent(window,'load', function() {
hideFields();
fillData();
//to remember time after select 'all_day'
var sh = document.getElementById('date_start_hours').value;
var sm = document.getElementById('date_start_minutes').value;
var dh = document.getElementById('date_due_hours').value;
var dm = document.getElementById('date_due_minutes').value;
document.getElementById('job_date_date').onchange = function() {
obj = document.getElementById('job_date_date');
document.getElementById('date_start_date').value = obj.value;
document.getElementById('date_due_date').value = obj.value;
document.getElementById('date_start').value=obj.value+' '+document.getElementById('date_start_hours').value+':'+document.getElementById('date_start_minutes').value;
document.getElementById('date_due').value=obj.value+' '+document.getElementById('date_due_hours').value+':'+document.getElementById('date_due_minutes').value;
}
document.getElementById('all_day').onchange = function() {
obj=document.getElementById('all_day');
if (obj.checked==true) {
sh = document.getElementById('date_start_hours').value;
sm = document.getElementById('date_start_minutes').value;
dh = document.getElementById('date_due_hours').value;
dm = document.getElementById('date_due_minutes').value;
document.getElementById('date_start_hours').value = '08';
document.getElementById('date_start_minutes').value = '00';
document.getElementById('date_due_hours').value = '16';
document.getElementById('date_due_minutes').value = '00';
document.getElementById('job_date_hours').value = '08';
document.getElementById('job_date_minutes').value = '00';
updateDateDue();
updateDateStart();
document.getElementById('date_due_minutes').disabled=true;
document.getElementById('date_due_hours').disabled=true;
document.getElementById('date_start_minutes').disabled=true;
document.getElementById('date_start_hours').disabled=true;
document.getElementById('no_time_finish').disabled=true;
}else{
document.getElementById('date_start_hours').value = sh;
document.getElementById('date_start_minutes').value = sm;
document.getElementById('date_due_hours').value = dh;
document.getElementById('date_due_minutes').value = dm;
document.getElementById('job_date_hours').value = sh;
document.getElementById('job_date_minutes').value = sm;
updateDateDue();
updateDateStart();
document.getElementById('date_due_minutes').disabled=false;
document.getElementById('date_due_hours').disabled=false;
document.getElementById('date_start_minutes').disabled=false;
document.getElementById('date_start_hours').disabled=false;
document.getElementById('no_time_finish').disabled=false;
}
}
document.getElementById('status').onchange=function() {
var obj = document.getElementById('status');
if ((obj.value=='made') || (obj.value=='canceled')) {
//set all data and time filds to actual date() value
document.getElementById('job_date_date').value = getCurrentDate();
document.getElementById('date_start_date').value = getCurrentDate();
document.getElementById('date_due_date').value = getCurrentDate();
document.getElementById('date_start_hours').value = getCurrentTime(2);
document.getElementById('date_start_minutes').value = getCurrentTime(3);
document.getElementById('date_due_hours').value = getCurrentTime(2);
document.getElementById('date_due_minutes').value = getCurrentTime(3);
document.getElementById('job_date_hours').value = getCurrentTime(2);
document.getElementById('job_date_minutes').value = getCurrentTime(3);
document.getElementById('date_start').value=getCurrentDate()+' '+getCurrentTime(1);
document.getElementById('date_due').value=getCurrentDate()+' '+getCurrentTime(1);
}
}
document.getElementById('no_time_finish').onchange=function() {
var obj = document.getElementById('no_time_finish');
if (obj.checked==true) {
document.getElementById('date_due_hours').value='23';
document.getElementById('date_due_minutes').value='45';
document.getElementById('date_due_minutes').disabled=true;
document.getElementById('date_due_hours').disabled=true;
}else{
document.getElementById('date_due_hours').value='08';
document.getElementById('date_due_minutes').value='30';
document.getElementById('date_due_minutes').disabled=false;
document.getElementById('date_due_hours').disabled=false;
}
updateDateDue();
}
}
);