Initial commit: Kimai TMS
Kimai time management system (PHP 5.6 / MySQL) with custom extensions: - Budget tracking (ki_budget) - Change request form (ki_changerequest) - Invoice generation (ki_invoice) - Expense tracking (ki_expenses) - Flexi time (ki_flexitime) - Export, admin panel, timesheets, tasks, summary Database: ~900K time entries, 2,000+ users, 439 projects. Config: includes/autoconf.php — localhost/kimai/kimai
This commit is contained in:
149
js/func.js
Normal file
149
js/func.js
Normal file
@@ -0,0 +1,149 @@
|
||||
/**
|
||||
* This file is part of
|
||||
* Kimai - Open Source Time Tracking // http://www.kimai.org
|
||||
* (c) 2006-2009 Kimai-Development-Team
|
||||
*
|
||||
* Kimai is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; Version 3, 29 June 2007
|
||||
*
|
||||
* Kimai is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Kimai; If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Javascript functions used in the timesheet extension.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// pastes the current date and time in the outPoint field of the
|
||||
// change dialog for timesheet entries
|
||||
//
|
||||
// $tpl->assign('pasteValue', date("d.m.Y - H:i:s",$kga['now']));
|
||||
//
|
||||
function pasteNow(value) {
|
||||
|
||||
now = new Date();
|
||||
|
||||
H = now.getHours();
|
||||
i = now.getMinutes();
|
||||
s = now.getSeconds();
|
||||
|
||||
if (H<10) H = "0"+H;
|
||||
if (i<10) i = "0"+i;
|
||||
if (s<10) s = "0"+s;
|
||||
|
||||
time = H + ":" + i + ":" + s;
|
||||
|
||||
$("#edit_out_time").val(time);
|
||||
|
||||
$("#select_out_day").datepicker( "setDate" , now );
|
||||
}
|
||||
|
||||
//
|
||||
// Thanks to Tijl Vercaemer for the time duration field !
|
||||
//
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// Returns a Date object, based on 2 strings
|
||||
//
|
||||
function mn_getDateFromStrings(dateStr) {
|
||||
result = new Date();
|
||||
dateArray=dateStr.split(/\./);
|
||||
if(dateArray.length != 3) {
|
||||
return null;
|
||||
}
|
||||
result.setFullYear(dateArray[2],dateArray[1]-1,dateArray[0]);
|
||||
return result;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// Gets the begin Date, while editing a timesheet record
|
||||
//
|
||||
function mn_getStartDate() {
|
||||
return mn_getDateFromStrings($("#select_in_day").val());
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// Gets the end Date, while editing a timesheet record
|
||||
//
|
||||
function mn_getEndDate() {
|
||||
return mn_getDateFromStrings($("#select_out_day").val());
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// Change the end time field, based on the duration, while editing a timesheet record
|
||||
//
|
||||
function mn_durationToTime() {
|
||||
end = mn_getEndDate();
|
||||
durationArray=$("#edit_duration").val().split(/:|\./);
|
||||
if(end!=null && durationArray.length > 0 && durationArray.length < 4) {
|
||||
secs = durationArray[0]*3600;
|
||||
if(durationArray.length > 1)
|
||||
secs += (durationArray[1]*60);
|
||||
if(durationArray.length > 2)
|
||||
secs += parseInt(durationArray[2]);
|
||||
begin = new Date();
|
||||
begin.setTime(end.getTime()-(secs*1000));
|
||||
|
||||
|
||||
var H = begin.getHours();
|
||||
var i = begin.getMinutes();
|
||||
var s = begin.getSeconds();
|
||||
|
||||
if (H<10) H = "0"+H;
|
||||
if (i<10) i = "0"+i;
|
||||
if (s<10) s = "0"+s;
|
||||
|
||||
$("#edit_in_time").val(H + ":" + i + ":" + s);
|
||||
|
||||
var d = begin.getDate();
|
||||
var m = begin.getMonth() + 1;
|
||||
var y = begin.getFullYear();
|
||||
if (d<10) d = "0"+d;
|
||||
if (m<10) m = "0"+m;
|
||||
|
||||
$("#select_in_day").val(d + "." + m + "." + y);
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// Change the duration field, based on the time, while editing a timesheet record
|
||||
//
|
||||
function mn_timeToDuration() {
|
||||
begin = mn_getStartDate();
|
||||
end = mn_getEndDate();
|
||||
if(begin==null || end==null) {
|
||||
$("#edit_duration").val("");
|
||||
} else {
|
||||
beginSecs = Math.floor(begin.getTime() / 1000);
|
||||
endSecs = Math.floor(end.getTime() / 1000);
|
||||
durationSecs = endSecs - beginSecs;
|
||||
if(durationSecs<0) {
|
||||
$("#edit_duration").val("");
|
||||
} else {
|
||||
secs = durationSecs%60;
|
||||
if(secs<10)
|
||||
secs="0"+secs;
|
||||
durationSecs = Math.floor(durationSecs/60);
|
||||
mins = durationSecs%60;
|
||||
if(mins<10)
|
||||
mins="0"+mins;
|
||||
hours = Math.floor(durationSecs / 60);
|
||||
if(hours<10)
|
||||
hours="0"+hours;
|
||||
$("#edit_duration").val(hours+":"+mins+":"+secs);
|
||||
}
|
||||
}
|
||||
}
|
||||
//------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user