mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-22 07:53:39 +01:00
- fixed timesheet to display only hours
- improved printing: + disabled unnecessary UI-elements + sums after each day, week, month
This commit is contained in:
parent
23f5d80380
commit
0a0a2b0513
@ -282,6 +282,35 @@ class botimesheet extends so_sql
|
|||||||
|
|
||||||
if ($only_summary) return $this->summary;
|
if ($only_summary) return $this->summary;
|
||||||
|
|
||||||
|
// ToDo: get the day- & weeksums working with DB's other then MySQL (problem is a missing equivalent to FROM_UNIXTIME)
|
||||||
|
if ($this->db->Type == 'mysql' && strstr($order_by,'ts_start')) // day- / weekwise sums only for mysql and if ordered by ts_start
|
||||||
|
{
|
||||||
|
// regular entries
|
||||||
|
parent::search($criteria,$only_keys,$order_by,$extra_cols,$wildcard,$empty,$op,'UNION',$filter,$join,$need_full_no_count);
|
||||||
|
|
||||||
|
// month-sums
|
||||||
|
parent::search($criteria,"-2,'',DATE_FORMAT(FROM_UNIXTIME(ts_start),'%Y%m') AS ts_month,'',ts_start,".
|
||||||
|
"SUM(ts_duration) AS ts_duration,0,0,0,0,0,0,0,SUM(ts_unitprice * ts_quantity) AS ts_total",
|
||||||
|
'GROUP BY ts_month ORDER BY '.$order_by,'',$wildcard,$empty,$op,'UNION',$filter,$join,$need_full_no_count);
|
||||||
|
|
||||||
|
// week-sums
|
||||||
|
$weekstart = $GLOBALS['egw_info']['user']['preferences']['calendar']['weekdaystarts'] == 'Sunday' ? 0 : 1;
|
||||||
|
parent::search($criteria,"-1,'',YEARWEEK(FROM_UNIXTIME(ts_start),$weekstart) AS ts_week,'',ts_start,".
|
||||||
|
"SUM(ts_duration) AS ts_duration,0,0,0,0,0,0,0,SUM(ts_unitprice * ts_quantity) AS ts_total",
|
||||||
|
'GROUP BY ts_week ORDER BY '.$order_by,'',$wildcard,$empty,$op,'UNION',$filter,$join,$need_full_no_count);
|
||||||
|
|
||||||
|
// order of the union: monthsums behind the month, weeksums behind the week and daysums behind the day
|
||||||
|
$sort = substr($order_by,8);
|
||||||
|
$union_order = "DATE_FORMAT(FROM_UNIXTIME(ts_start),'%Y%m') $sort,CASE WHEN ts_id=-2 THEN 1 ELSE 0 END,".
|
||||||
|
"YEARWEEK(FROM_UNIXTIME(ts_start),$weekstart) $sort,CASE WHEN ts_id=-1 THEN 1 ELSE 0 END,".
|
||||||
|
"DATE(FROM_UNIXTIME(ts_start)) $sort,CASE WHEN ts_id=0 THEN 1 ELSE 0 END,$order_by";
|
||||||
|
|
||||||
|
// day-sums
|
||||||
|
return parent::search($criteria,"0,'',DATE(FROM_UNIXTIME(ts_start)) AS ts_date,'',ts_start,".
|
||||||
|
"SUM(ts_duration) AS ts_duration,0,0,0,0,0,0,0,SUM(ts_unitprice * ts_quantity) AS ts_total",
|
||||||
|
array('GROUP BY ts_date ORDER BY '.$order_by,$union_order),
|
||||||
|
'',$wildcard,$empty,$op,$start,$filter,$join,$need_full_no_count);
|
||||||
|
}
|
||||||
return parent::search($criteria,$only_keys,$order_by,$extra_cols,$wildcard,$empty,$op,$start,$filter,$join,$need_full_no_count);
|
return parent::search($criteria,$only_keys,$order_by,$extra_cols,$wildcard,$empty,$op,$start,$filter,$join,$need_full_no_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -311,6 +311,30 @@ class uitimesheet extends botimesheet
|
|||||||
foreach($rows as $n => $val)
|
foreach($rows as $n => $val)
|
||||||
{
|
{
|
||||||
$row =& $rows[$n];
|
$row =& $rows[$n];
|
||||||
|
|
||||||
|
$row['class'] = 'row';
|
||||||
|
if ($row['ts_id'] <= 0) // sums
|
||||||
|
{
|
||||||
|
$readonlys["view[$row[ts_id]]"] = $readonlys["edit[$row[ts_id]]"] = $readonlys["delete[$row[ts_id]]"] = true;
|
||||||
|
if ($query['sort'] == 'ASC') $row['ts_start'] -= 7200; // fix for DSL change
|
||||||
|
switch($row['ts_id'])
|
||||||
|
{
|
||||||
|
case 0: // day-sum
|
||||||
|
$row['ts_title'] = lang('Sum %1:',lang(date('l',$row['ts_start'])).' '.$GLOBALS['egw']->common->show_date($row['ts_start'],
|
||||||
|
$GLOBALS['egw_info']['user']['preferences']['common']['dateformat'],false));
|
||||||
|
break;
|
||||||
|
case -1: // week-sum
|
||||||
|
$row['ts_title'] = lang('Sum %1:',lang('week').' '.substr($row['ts_title'],4).'/'.substr($row['ts_title'],0,4));
|
||||||
|
break;
|
||||||
|
case -2: // month-sum
|
||||||
|
$row['ts_title'] = lang('Sum %1:',lang(date('F',$row['ts_start'])).' '.substr($row['ts_title'],0,4));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$row['ts_start'] = $row['ts_quantity'] = $row['ts_unitprice'] = '';
|
||||||
|
$row['class'] = 'th';
|
||||||
|
$row['titleClass'] = 'titleSum';
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (!$this->check_acl(EGW_ACL_EDIT,$row))
|
if (!$this->check_acl(EGW_ACL_EDIT,$row))
|
||||||
{
|
{
|
||||||
$readonlys["edit[$row[ts_id]]"] = true;
|
$readonlys["edit[$row[ts_id]]"] = true;
|
||||||
@ -338,6 +362,10 @@ class uitimesheet extends botimesheet
|
|||||||
{
|
{
|
||||||
unset($row['ts_description']);
|
unset($row['ts_description']);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$row['titleClass'] = 'titleDetails';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$rows['no_owner_col'] = $query['no_owner_col'];
|
$rows['no_owner_col'] = $query['no_owner_col'];
|
||||||
if ($query['filter'])
|
if ($query['filter'])
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// eTemplates for Application 'timesheet', generated by soetemplate::dump4setup() 2006-03-21 23:16
|
// eTemplates for Application 'timesheet', generated by soetemplate::dump4setup() 2006-03-26 23:39
|
||||||
|
|
||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
|
|
||||||
@ -21,9 +21,9 @@ $templ_data[] = array('name' => 'timesheet.edit.notes','template' => '','lang' =
|
|||||||
|
|
||||||
$templ_data[] = array('name' => 'timesheet.index','template' => '','lang' => '','group' => '0','version' => '0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:1:{s:2:"h1";s:6:",!@msg";}i:1;a:1:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:7:"no_lang";s:1:"1";s:4:"name";s:3:"msg";s:5:"align";s:6:"center";}}i:2;a:1:{s:1:"A";a:3:{s:4:"type";s:9:"nextmatch";s:4:"name";s:2:"nm";s:4:"size";s:20:"timesheet.index.rows";}}i:3;a:1:{s:1:"A";a:4:{s:4:"type";s:6:"button";s:5:"label";s:3:"Add";s:4:"name";s:3:"add";s:7:"onclick";s:163:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.uitimesheet.edit\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";}}}s:4:"rows";i:3;s:4:"cols";i:1;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1134799202',);
|
$templ_data[] = array('name' => 'timesheet.index','template' => '','lang' => '','group' => '0','version' => '0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:1:{s:2:"h1";s:6:",!@msg";}i:1;a:1:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:7:"no_lang";s:1:"1";s:4:"name";s:3:"msg";s:5:"align";s:6:"center";}}i:2;a:1:{s:1:"A";a:3:{s:4:"type";s:9:"nextmatch";s:4:"name";s:2:"nm";s:4:"size";s:20:"timesheet.index.rows";}}i:3;a:1:{s:1:"A";a:4:{s:4:"type";s:6:"button";s:5:"label";s:3:"Add";s:4:"name";s:3:"add";s:7:"onclick";s:163:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.uitimesheet.edit\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";}}}s:4:"rows";i:3;s:4:"cols";i:1;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1134799202',);
|
||||||
|
|
||||||
$templ_data[] = array('name' => 'timesheet.index','template' => '','lang' => '','group' => '0','version' => '1.2.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:2:{s:2:"h1";s:6:",!@msg";s:2:"h2";s:2:",1";}i:1;a:1:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:7:"no_lang";s:1:"1";s:4:"name";s:3:"msg";s:5:"align";s:6:"center";}}i:2;a:1:{s:1:"A";a:3:{s:4:"type";s:8:"template";s:5:"align";s:5:"right";s:4:"name";s:5:"dates";}}i:3;a:1:{s:1:"A";a:3:{s:4:"type";s:9:"nextmatch";s:4:"name";s:2:"nm";s:4:"size";s:20:"timesheet.index.rows";}}i:4;a:1:{s:1:"A";a:4:{s:4:"type";s:6:"button";s:5:"label";s:3:"Add";s:4:"name";s:3:"add";s:7:"onclick";s:163:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.uitimesheet.edit\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";}}}s:4:"rows";i:4;s:4:"cols";i:1;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1142977673',);
|
$templ_data[] = array('name' => 'timesheet.index','template' => '','lang' => '','group' => '0','version' => '1.2.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:3:{s:2:"h1";s:6:",!@msg";s:2:"h2";s:2:",1";s:2:"c4";s:7:"noPrint";}i:1;a:1:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:7:"no_lang";s:1:"1";s:4:"name";s:3:"msg";s:5:"align";s:6:"center";}}i:2;a:1:{s:1:"A";a:3:{s:4:"type";s:8:"template";s:5:"align";s:5:"right";s:4:"name";s:5:"dates";}}i:3;a:1:{s:1:"A";a:3:{s:4:"type";s:9:"nextmatch";s:4:"name";s:2:"nm";s:4:"size";s:20:"timesheet.index.rows";}}i:4;a:1:{s:1:"A";a:4:{s:4:"type";s:6:"button";s:5:"label";s:3:"Add";s:4:"name";s:3:"add";s:7:"onclick";s:163:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.uitimesheet.edit\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";}}}s:4:"rows";i:4;s:4:"cols";i:1;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1142977673',);
|
||||||
|
|
||||||
$templ_data[] = array('name' => 'timesheet.index.dates','template' => '','lang' => '','group' => '0','version' => '1.2.001','data' => 'a:1:{i:0;a:10:{s:4:"type";s:4:"hbox";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"size";s:1:"4";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Start";}i:2;a:3:{s:4:"type";s:4:"date";s:4:"name";s:9:"startdate";s:6:"needed";s:1:"1";}i:3;a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"End";}i:4;a:3:{s:4:"type";s:4:"date";s:4:"name";s:7:"enddate";s:4:"help";s:30:"Leave it empty for a full week";}s:4:"span";s:12:",custom_hide";}}','size' => '','style' => '.custom_hide { visibility: hidden; }','modified' => '1142973260',);
|
$templ_data[] = array('name' => 'timesheet.index.dates','template' => '','lang' => '','group' => '0','version' => '1.2.001','data' => 'a:1:{i:0;a:10:{s:4:"type";s:4:"hbox";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"size";s:1:"4";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Start";}i:2;a:2:{s:4:"type";s:4:"date";s:4:"name";s:9:"startdate";}i:3;a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"End";}i:4;a:3:{s:4:"type";s:4:"date";s:4:"name";s:7:"enddate";s:4:"help";s:30:"Leave it empty for a full week";}s:4:"span";s:12:",custom_hide";}}','size' => '','style' => '.custom_hide { visibility: hidden; }','modified' => '1142973260',);
|
||||||
|
|
||||||
$templ_data[] = array('name' => 'timesheet.index.rows','template' => '','lang' => '','group' => '0','version' => '0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:5:{s:2:"c1";s:2:"th";s:2:"c2";s:3:"row";s:1:"A";s:3:"15%";s:1:"G";s:14:",@no_owner_col";s:1:"B";s:3:"50%";}i:1;a:8:{s:1:"A";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"Date";s:4:"name";s:8:"ts_start";}s:1:"B";a:5:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";s:7:"no_lang";s:1:"1";i:1;a:4:{s:4:"type";s:22:"nextmatch-filterheader";s:4:"size";s:7:"Project";s:4:"name";s:10:"ts_project";s:7:"no_lang";s:1:"1";}i:2;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:5:"Title";s:4:"name";s:8:"ts_title";}}s:1:"C";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:8:"Duration";s:4:"name";s:11:"ts_duration";}i:2;a:4:{s:4:"type";s:13:"date-duration";s:4:"name";s:8:"duration";s:4:"size";s:6:",h,,,1";s:8:"readonly";s:1:"1";}}s:1:"D";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:8:"Quantity";s:4:"name";s:11:"ts_quantity";}s:1:"E";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:5:"Price";s:4:"name";s:12:"ts_unitprice";}s:1:"F";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:5:"Total";s:4:"name";s:8:"ts_total";}i:2;a:3:{s:4:"type";s:5:"float";s:4:"name";s:5:"price";s:8:"readonly";s:1:"1";}}s:1:"G";a:4:{s:4:"type";s:22:"nextmatch-filterheader";s:4:"name";s:8:"ts_owner";s:4:"size";s:4:"User";s:7:"no_lang";s:1:"1";}s:1:"H";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";}}i:2;a:8:{s:1:"A";a:4:{s:4:"type";s:9:"date-time";s:4:"name";s:16:"${row}[ts_start]";s:8:"readonly";s:1:"1";s:4:"size";s:2:",8";}s:1:"B";a:5:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"3";i:1;a:3:{s:4:"type";s:4:"link";s:4:"name";s:15:"${row}[ts_link]";s:7:"no_lang";s:1:"1";}i:2;a:4:{s:4:"type";s:5:"label";s:4:"name";s:16:"${row}[ts_title]";s:7:"no_lang";s:1:"1";s:4:"size";s:1:"b";}i:3;a:3:{s:4:"type";s:5:"label";s:4:"name";s:22:"${row}[ts_description]";s:7:"no_lang";s:1:"1";}}s:1:"C";a:4:{s:4:"type";s:13:"date-duration";s:4:"name";s:19:"${row}[ts_duration]";s:8:"readonly";s:1:"1";s:4:"size";s:5:",,,,1";}s:1:"D";a:3:{s:4:"type";s:5:"label";s:4:"name";s:19:"${row}[ts_quantity]";s:7:"no_lang";s:1:"1";}s:1:"E";a:3:{s:4:"type";s:5:"label";s:7:"no_lang";s:1:"1";s:4:"name";s:20:"${row}[ts_unitprice]";}s:1:"F";a:3:{s:4:"type";s:5:"label";s:7:"no_lang";s:1:"1";s:4:"name";s:16:"${row}[ts_total]";}s:1:"G";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:16:"${row}[ts_owner]";s:8:"readonly";s:1:"1";}s:1:"H";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:6:{s:4:"type";s:6:"button";s:4:"size";s:4:"view";s:5:"label";s:4:"View";s:4:"name";s:22:"view[$row_cont[ts_id]]";s:7:"onclick";s:186:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.uitimesheet.view&ts_id=$row_cont[ts_id]\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";s:4:"help";s:15:"View this entry";}i:2;a:6:{s:4:"type";s:6:"button";s:4:"size";s:4:"edit";s:5:"label";s:4:"Edit";s:4:"name";s:22:"edit[$row_cont[ts_id]]";s:4:"help";s:15:"Edit this entry";s:7:"onclick";s:186:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.uitimesheet.edit&ts_id=$row_cont[ts_id]\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";}i:3;a:6:{s:4:"type";s:6:"button";s:4:"size";s:6:"delete";s:5:"label";s:6:"Delete";s:4:"name";s:24:"delete[$row_cont[ts_id]]";s:4:"help";s:17:"Delete this entry";s:7:"onclick";s:36:"return confirm(\'Delete this entry\');";}}}}s:4:"rows";i:2;s:4:"cols";i:8;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1134799629',);
|
$templ_data[] = array('name' => 'timesheet.index.rows','template' => '','lang' => '','group' => '0','version' => '0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:5:{s:2:"c1";s:2:"th";s:2:"c2";s:16:"$row_cont[class]";s:1:"A";s:3:"15%";s:1:"G";s:14:",@no_owner_col";s:1:"B";s:3:"50%";}i:1;a:8:{s:1:"A";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"Date";s:4:"name";s:8:"ts_start";}s:1:"B";a:5:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";s:7:"no_lang";s:1:"1";i:1;a:4:{s:4:"type";s:22:"nextmatch-filterheader";s:4:"size";s:7:"Project";s:4:"name";s:10:"ts_project";s:7:"no_lang";s:1:"1";}i:2;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:5:"Title";s:4:"name";s:8:"ts_title";}}s:1:"C";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:8:"Duration";s:4:"name";s:11:"ts_duration";}i:2;a:4:{s:4:"type";s:13:"date-duration";s:4:"name";s:8:"duration";s:4:"size";s:6:",h,,,1";s:8:"readonly";s:1:"1";}}s:1:"D";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:8:"Quantity";s:4:"name";s:11:"ts_quantity";}s:1:"E";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:5:"Price";s:4:"name";s:12:"ts_unitprice";}s:1:"F";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:5:"Total";s:4:"name";s:8:"ts_total";}i:2;a:3:{s:4:"type";s:5:"float";s:4:"name";s:5:"price";s:8:"readonly";s:1:"1";}}s:1:"G";a:4:{s:4:"type";s:22:"nextmatch-filterheader";s:4:"name";s:8:"ts_owner";s:4:"size";s:4:"User";s:7:"no_lang";s:1:"1";}s:1:"H";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";s:4:"span";s:8:",noPrint";}}i:2;a:8:{s:1:"A";a:4:{s:4:"type";s:9:"date-time";s:4:"name";s:16:"${row}[ts_start]";s:8:"readonly";s:1:"1";s:4:"size";s:2:",8";}s:1:"B";a:5:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"3";i:1;a:3:{s:4:"type";s:4:"link";s:4:"name";s:15:"${row}[ts_link]";s:7:"no_lang";s:1:"1";}i:2;a:4:{s:4:"type";s:5:"label";s:4:"name";s:16:"${row}[ts_title]";s:7:"no_lang";s:1:"1";s:4:"span";s:22:",$row_cont[titleClass]";}i:3;a:3:{s:4:"type";s:5:"label";s:4:"name";s:22:"${row}[ts_description]";s:7:"no_lang";s:1:"1";}}s:1:"C";a:4:{s:4:"type";s:13:"date-duration";s:4:"name";s:19:"${row}[ts_duration]";s:8:"readonly";s:1:"1";s:4:"size";s:6:",h,,,1";}s:1:"D";a:3:{s:4:"type";s:5:"label";s:4:"name";s:19:"${row}[ts_quantity]";s:7:"no_lang";s:1:"1";}s:1:"E";a:3:{s:4:"type";s:5:"label";s:7:"no_lang";s:1:"1";s:4:"name";s:20:"${row}[ts_unitprice]";}s:1:"F";a:3:{s:4:"type";s:5:"label";s:7:"no_lang";s:1:"1";s:4:"name";s:16:"${row}[ts_total]";}s:1:"G";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:16:"${row}[ts_owner]";s:8:"readonly";s:1:"1";}s:1:"H";a:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:6:{s:4:"type";s:6:"button";s:4:"size";s:4:"view";s:5:"label";s:4:"View";s:4:"name";s:22:"view[$row_cont[ts_id]]";s:7:"onclick";s:186:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.uitimesheet.view&ts_id=$row_cont[ts_id]\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";s:4:"help";s:15:"View this entry";}i:2;a:6:{s:4:"type";s:6:"button";s:4:"size";s:4:"edit";s:5:"label";s:4:"Edit";s:4:"name";s:22:"edit[$row_cont[ts_id]]";s:4:"help";s:15:"Edit this entry";s:7:"onclick";s:186:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.uitimesheet.edit&ts_id=$row_cont[ts_id]\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";}i:3;a:6:{s:4:"type";s:6:"button";s:4:"size";s:6:"delete";s:5:"label";s:6:"Delete";s:4:"name";s:24:"delete[$row_cont[ts_id]]";s:4:"help";s:17:"Delete this entry";s:7:"onclick";s:36:"return confirm(\'Delete this entry\');";}s:4:"span";s:8:",noPrint";}}}s:4:"rows";i:2;s:4:"cols";i:8;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1134799629',);
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ create new links timesheet de Neue Verkn
|
|||||||
delete this entry timesheet de Diesen Eintrag löschen
|
delete this entry timesheet de Diesen Eintrag löschen
|
||||||
edit this entry timesheet de diesen Eintrag bearbeiten
|
edit this entry timesheet de diesen Eintrag bearbeiten
|
||||||
empty if identical to duration timesheet de leer lassen wenn gleich Dauer
|
empty if identical to duration timesheet de leer lassen wenn gleich Dauer
|
||||||
|
end timesheet de Ende
|
||||||
entry deleted timesheet de Eintrag gelöscht
|
entry deleted timesheet de Eintrag gelöscht
|
||||||
entry saved timesheet de Eintrag gespeichert
|
entry saved timesheet de Eintrag gespeichert
|
||||||
error deleting the entry!!! timesheet de Fehler beim Löschen des Eintrags!!!
|
error deleting the entry!!! timesheet de Fehler beim Löschen des Eintrags!!!
|
||||||
@ -28,11 +29,14 @@ saves the changes made timesheet de Speichert die
|
|||||||
saves this entry and add a new one timesheet de Speichert diesen Eintrag und fügt einen neuen hinzu
|
saves this entry and add a new one timesheet de Speichert diesen Eintrag und fügt einen neuen hinzu
|
||||||
select a price timesheet de Preis auswählen
|
select a price timesheet de Preis auswählen
|
||||||
select a project timesheet de Projekt auswählen
|
select a project timesheet de Projekt auswählen
|
||||||
|
start timesheet de Start
|
||||||
|
sum %1: timesheet de Summe %1:
|
||||||
this month timesheet de Diesen Monat
|
this month timesheet de Diesen Monat
|
||||||
this week timesheet de Diese Woche
|
this week timesheet de Diese Woche
|
||||||
this year timesheet de Diese Jahr
|
this year timesheet de Diese Jahr
|
||||||
timesheet common de Stundenzettel
|
timesheet common de Stundenzettel
|
||||||
unitprice timesheet de Preis pro Einheit
|
unitprice timesheet de Preis pro Einheit
|
||||||
view this entry timesheet de Diesen Eintrag anzeigen
|
view this entry timesheet de Diesen Eintrag anzeigen
|
||||||
|
week timesheet de Woche
|
||||||
yesterday timesheet de Gestern
|
yesterday timesheet de Gestern
|
||||||
your database is not up to date (%1 vs. %2), please run %3setup%4 to update your database. timesheet de Ihre Datenbank ist NICHT aktuell (%1 statt %2), bitte rufen sie %3setup%4 auf um die Datenbank zu aktualisieren.
|
your database is not up to date (%1 vs. %2), please run %3setup%4 to update your database. timesheet de Ihre Datenbank ist NICHT aktuell (%1 statt %2), bitte rufen sie %3setup%4 auf um die Datenbank zu aktualisieren.
|
||||||
|
@ -7,6 +7,7 @@ create new links timesheet en Create new links
|
|||||||
delete this entry timesheet en Delete this entry
|
delete this entry timesheet en Delete this entry
|
||||||
edit this entry timesheet en Edit this entry
|
edit this entry timesheet en Edit this entry
|
||||||
empty if identical to duration timesheet en empty if identical to duration
|
empty if identical to duration timesheet en empty if identical to duration
|
||||||
|
end timesheet en End
|
||||||
entry deleted timesheet en Entry deleted
|
entry deleted timesheet en Entry deleted
|
||||||
entry saved timesheet en Entry saved
|
entry saved timesheet en Entry saved
|
||||||
error deleting the entry!!! timesheet en Error deleting the entry!!!
|
error deleting the entry!!! timesheet en Error deleting the entry!!!
|
||||||
@ -28,11 +29,14 @@ saves the changes made timesheet en Saves the changes made
|
|||||||
saves this entry and add a new one timesheet en Saves this entry and add a new one
|
saves this entry and add a new one timesheet en Saves this entry and add a new one
|
||||||
select a price timesheet en Select a price
|
select a price timesheet en Select a price
|
||||||
select a project timesheet en Select a project
|
select a project timesheet en Select a project
|
||||||
|
start timesheet en Start
|
||||||
|
sum %1: timesheet en Sum %1:
|
||||||
this month timesheet en This month
|
this month timesheet en This month
|
||||||
this week timesheet en This week
|
this week timesheet en This week
|
||||||
this year timesheet en This year
|
this year timesheet en This year
|
||||||
timesheet common en TimeSheet
|
timesheet common en TimeSheet
|
||||||
unitprice timesheet en Unitprice
|
unitprice timesheet en Unitprice
|
||||||
view this entry timesheet en View this entry
|
view this entry timesheet en View this entry
|
||||||
|
week timesheet en Week
|
||||||
yesterday timesheet en Yesterday
|
yesterday timesheet en Yesterday
|
||||||
your database is not up to date (%1 vs. %2), please run %3setup%4 to update your database. timesheet en Your database is NOT up to date (%1 vs. %2), please run %3setup%4 to update your database.
|
your database is not up to date (%1 vs. %2), please run %3setup%4 to update your database. timesheet en Your database is NOT up to date (%1 vs. %2), please run %3setup%4 to update your database.
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
.redItalic { color: red; font-style: italics; }
|
.redItalic { color: red; font-style: italics; }
|
||||||
|
.titleSum,.titleDetails { font-weight: bold; }
|
@ -4,7 +4,7 @@
|
|||||||
<template id="timesheet.index.dates" template="" lang="" group="0" version="1.2.001">
|
<template id="timesheet.index.dates" template="" lang="" group="0" version="1.2.001">
|
||||||
<hbox data="" rows="1" cols="1" class="custom_hide">
|
<hbox data="" rows="1" cols="1" class="custom_hide">
|
||||||
<description value="Start"/>
|
<description value="Start"/>
|
||||||
<date id="startdate" needed="1"/>
|
<date id="startdate"/>
|
||||||
<description value="End"/>
|
<description value="End"/>
|
||||||
<date id="enddate" statustext="Leave it empty for a full week"/>
|
<date id="enddate" statustext="Leave it empty for a full week"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
@ -42,23 +42,23 @@
|
|||||||
<textbox type="float" id="price" readonly="true"/>
|
<textbox type="float" id="price" readonly="true"/>
|
||||||
</vbox>
|
</vbox>
|
||||||
<nextmatch-filterheader id="ts_owner" options="User" no_lang="1"/>
|
<nextmatch-filterheader id="ts_owner" options="User" no_lang="1"/>
|
||||||
<description value="Actions"/>
|
<description value="Actions" class="noPrint"/>
|
||||||
</row>
|
</row>
|
||||||
<row class="row">
|
<row class="$row_cont[class]">
|
||||||
<date-time id="${row}[ts_start]" readonly="true" options=",8"/>
|
<date-time id="${row}[ts_start]" readonly="true" options=",8"/>
|
||||||
<vbox>
|
<vbox>
|
||||||
<link id="${row}[ts_link]" no_lang="1"/>
|
<link id="${row}[ts_link]" no_lang="1"/>
|
||||||
<description id="${row}[ts_title]" no_lang="1" options="b"/>
|
<description id="${row}[ts_title]" no_lang="1" class="$row_cont[titleClass]"/>
|
||||||
<description id="${row}[ts_description]" no_lang="1"/>
|
<description id="${row}[ts_description]" no_lang="1"/>
|
||||||
</vbox>
|
</vbox>
|
||||||
<date-duration id="${row}[ts_duration]" readonly="true" options=",,,,1"/>
|
<date-duration id="${row}[ts_duration]" readonly="true" options=",h,,,1"/>
|
||||||
<description id="${row}[ts_quantity]" no_lang="1"/>
|
<description id="${row}[ts_quantity]" no_lang="1"/>
|
||||||
<description no_lang="1" id="${row}[ts_unitprice]"/>
|
<description no_lang="1" id="${row}[ts_unitprice]"/>
|
||||||
<description no_lang="1" id="${row}[ts_total]"/>
|
<description no_lang="1" id="${row}[ts_total]"/>
|
||||||
<menulist>
|
<menulist>
|
||||||
<menupopup type="select-account" id="${row}[ts_owner]" readonly="true"/>
|
<menupopup type="select-account" id="${row}[ts_owner]" readonly="true"/>
|
||||||
</menulist>
|
</menulist>
|
||||||
<hbox>
|
<hbox class="noPrint">
|
||||||
<button image="view" label="View" id="view[$row_cont[ts_id]]" onclick="window.open(egw::link('/index.php','menuaction=timesheet.uitimesheet.view&ts_id=$row_cont[ts_id]'),'_blank','dependent=yes,width=600,height=400,scrollbars=yes,status=yes'); return false;" statustext="View this entry"/>
|
<button image="view" label="View" id="view[$row_cont[ts_id]]" onclick="window.open(egw::link('/index.php','menuaction=timesheet.uitimesheet.view&ts_id=$row_cont[ts_id]'),'_blank','dependent=yes,width=600,height=400,scrollbars=yes,status=yes'); return false;" statustext="View this entry"/>
|
||||||
<button image="edit" label="Edit" id="edit[$row_cont[ts_id]]" statustext="Edit this entry" onclick="window.open(egw::link('/index.php','menuaction=timesheet.uitimesheet.edit&ts_id=$row_cont[ts_id]'),'_blank','dependent=yes,width=600,height=400,scrollbars=yes,status=yes'); return false;"/>
|
<button image="edit" label="Edit" id="edit[$row_cont[ts_id]]" statustext="Edit this entry" onclick="window.open(egw::link('/index.php','menuaction=timesheet.uitimesheet.edit&ts_id=$row_cont[ts_id]'),'_blank','dependent=yes,width=600,height=400,scrollbars=yes,status=yes'); return false;"/>
|
||||||
<button image="delete" label="Delete" id="delete[$row_cont[ts_id]]" statustext="Delete this entry" onclick="return confirm('Delete this entry');"/>
|
<button image="delete" label="Delete" id="delete[$row_cont[ts_id]]" statustext="Delete this entry" onclick="return confirm('Delete this entry');"/>
|
||||||
@ -82,7 +82,7 @@
|
|||||||
<row>
|
<row>
|
||||||
<nextmatch id="nm" options="timesheet.index.rows"/>
|
<nextmatch id="nm" options="timesheet.index.rows"/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row class="noPrint">
|
||||||
<button label="Add" id="add" onclick="window.open(egw::link('/index.php','menuaction=timesheet.uitimesheet.edit'),'_blank','dependent=yes,width=600,height=400,scrollbars=yes,status=yes'); return false;"/>
|
<button label="Add" id="add" onclick="window.open(egw::link('/index.php','menuaction=timesheet.uitimesheet.edit'),'_blank','dependent=yes,width=600,height=400,scrollbars=yes,status=yes'); return false;"/>
|
||||||
</row>
|
</row>
|
||||||
</rows>
|
</rows>
|
||||||
|
Loading…
Reference in New Issue
Block a user