/** * 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 . */ /** * 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); } } } //------------------------------------------------------------------------------------------