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:
70
extensions/ki_export/css/optiontabs.css
Normal file
70
extensions/ki_export/css/optiontabs.css
Normal file
@@ -0,0 +1,70 @@
|
||||
#xp_ext_tab_filter {
|
||||
padding: 10px 0 0 0;
|
||||
font-size: 20px;
|
||||
color: #3a3b34;
|
||||
display: none;
|
||||
}
|
||||
#xp_ext_tab_filter input[type=text] {
|
||||
font-size: 20px;
|
||||
display: block;
|
||||
float: left;
|
||||
width: 100px;
|
||||
border: none;
|
||||
height: 25px;
|
||||
margin-top: 1px;
|
||||
margin-left: 5px;
|
||||
padding-left: 3px;
|
||||
background-color: #ddddcd;
|
||||
}
|
||||
#xp_ext_tab_filter span {
|
||||
margin-left: 10px;
|
||||
float: left;
|
||||
display: block;
|
||||
}
|
||||
#xp_ext_tab_location {
|
||||
padding: 10px 0 0 0;
|
||||
font-size: 20px;
|
||||
color: #3a3b34;
|
||||
display: none;
|
||||
}
|
||||
#xp_ext_tab_location input[type=text] {
|
||||
font-size: 20px;
|
||||
display: block;
|
||||
float: left;
|
||||
width: 150px;
|
||||
border: none;
|
||||
height: 25px;
|
||||
margin-top: 1px;
|
||||
margin-left: 5px;
|
||||
padding-left: 3px;
|
||||
background-color: #ddddcd;
|
||||
}
|
||||
#xp_ext_tab_location span {
|
||||
margin-left: 10px;
|
||||
float: left;
|
||||
display: block;
|
||||
}
|
||||
#xp_ext_tab_timeformat {
|
||||
padding: 10px 0 0 0;
|
||||
font-size: 20px;
|
||||
color: #3a3b34;
|
||||
display: none;
|
||||
}
|
||||
#xp_ext_tab_timeformat input[type=text] {
|
||||
font-size: 20px;
|
||||
display: block;
|
||||
float: left;
|
||||
width: 100px;
|
||||
border: none;
|
||||
height: 25px;
|
||||
margin-top: 1px;
|
||||
margin-left: 5px;
|
||||
padding-left: 3px;
|
||||
background-color: #ddddcd;
|
||||
}
|
||||
#xp_ext_tab_timeformat span {
|
||||
margin-left: 10px;
|
||||
float: left;
|
||||
display: block;
|
||||
}
|
||||
#xp_ext_tab_timeformat { display: block; }
|
||||
103
extensions/ki_export/css/panel.css
Normal file
103
extensions/ki_export/css/panel.css
Normal file
@@ -0,0 +1,103 @@
|
||||
#xp_panel { padding: 10px 10px 10px 10px; }
|
||||
#xp_panel .r .l,#xp_panel .l .l,
|
||||
#xp_panel .l .w .c,
|
||||
#xp_panel .r .w .c,
|
||||
#xp_panel .w .c .w .c,
|
||||
#xp_panel .w .c .l,
|
||||
#xp_panel .w .c .r,
|
||||
#xp_panel .r .r
|
||||
{background: url('../grfx/stats_panel.png');}
|
||||
|
||||
#xp_panel .l,#xp_panel .r,#xp_panel .w { float: left; }
|
||||
#xp_panel .l,#xp_panel .r,#xp_panel .c { height: 49px; }
|
||||
#xp_panel .l .l,#xp_panel .r .l,#xp_panel .r .r {width: 4px;}
|
||||
#xp_panel .l .w .c,#xp_panel .r .w .c {background-position: 0 98px;}
|
||||
|
||||
#xp_panel .l { margin-left: -100%; width: 133px;}
|
||||
#xp_panel .r { width: 183px; margin-left: -183px;}
|
||||
#xp_panel .r .r { background-position: -27px 0; margin-left: -4px;}
|
||||
#xp_panel .w { width: 100%; }
|
||||
#xp_panel .w .c { margin: 0 183px 0 133px; }
|
||||
#xp_panel .w .c .w .c { margin: 0 8px 0 15px; background-position: 0 49px;}
|
||||
#xp_panel .w .c .l { background-position: -4px 0; width: 15px;}
|
||||
#xp_panel .w .c .r { background-position: -19px 0; width: 8px; margin-left: -10px;}
|
||||
#xp_panel .l .w .c { margin: 0 0 0 1px;}
|
||||
#xp_panel .r .w .c { margin: 0 4px 0 2px;}
|
||||
|
||||
#xp_panel .select_btn,#xp_panel .output_btn {
|
||||
position:relative;
|
||||
text-indent:-999em;
|
||||
display:block;
|
||||
width:41px;
|
||||
height:42px;
|
||||
background: url('../grfx/select.png');
|
||||
}
|
||||
|
||||
#xp_panel a.helpfloater {
|
||||
display:block;
|
||||
float:left;
|
||||
height:13px;
|
||||
width:13px;
|
||||
text-indent:-999em;
|
||||
background: url('../grfx/help.png');
|
||||
}
|
||||
|
||||
#xp_panel #xp_ext_select_filter { top:3px; }
|
||||
#xp_panel #xp_ext_select_filter:hover { background-position: 0 -42px; }
|
||||
#xp_panel #xp_ext_select_filter:active { background-position: 0 -84px; }
|
||||
#xp_panel #xp_ext_select_filter.pressed { background-position: 0 -84px; }
|
||||
|
||||
#xp_panel #xp_ext_select_location
|
||||
{
|
||||
left:44px; top:-39px;
|
||||
background-position: 204px 0;
|
||||
}
|
||||
#xp_panel #xp_ext_select_location:hover { background-position: 204px -42px; }
|
||||
#xp_panel #xp_ext_select_location:active { background-position: 204px -84px; }
|
||||
#xp_panel #xp_ext_select_location.pressed { background-position: 204px -84px; }
|
||||
|
||||
#xp_panel #xp_ext_select_timeformat
|
||||
{
|
||||
left:88px; top:-81px;
|
||||
background-position: 163px 0;
|
||||
}
|
||||
#xp_panel #xp_ext_select_timeformat:hover { background-position: 163px -42px; }
|
||||
#xp_panel #xp_ext_select_timeformat:active { background-position: 163px -84px; }
|
||||
#xp_panel #xp_ext_select_timeformat.pressed { background-position: 163px -84px; }
|
||||
|
||||
#xp_panel #xp_ext_export_pdf
|
||||
{
|
||||
top:3px;
|
||||
background-position: 122px 0;
|
||||
}
|
||||
#xp_panel #xp_ext_export_pdf:hover { background-position: 122px -42px; }
|
||||
#xp_panel #xp_ext_export_pdf.pressed { background-position: 122px -84px; }
|
||||
|
||||
#xp_panel #xp_ext_export_xls
|
||||
{
|
||||
left:44px; top:-39px;
|
||||
background-position: 82px 0;
|
||||
}
|
||||
#xp_panel #xp_ext_export_xls:hover { background-position: 82px -42px; }
|
||||
#xp_panel #xp_ext_export_xls.pressed { background-position: 82px -84px; }
|
||||
|
||||
#xp_panel #xp_ext_export_csv
|
||||
{
|
||||
left:88px; top:-81px;
|
||||
background-position: -41px 0;
|
||||
}
|
||||
#xp_panel #xp_ext_export_csv:hover { background-position: -41px -42px; }
|
||||
#xp_panel #xp_ext_export_csv.pressed { background-position: -41px -84px; }
|
||||
|
||||
#xp_panel #xp_ext_print
|
||||
{
|
||||
left:132px; top:-123px;
|
||||
background-position: 41px 0;
|
||||
}
|
||||
#xp_panel #xp_ext_print:hover { background-position: 41px -42px; }
|
||||
#xp_panel #xp_ext_print.pressed { background-position: 41px -84px; }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
55
extensions/ki_export/css/setup.css.php
Normal file
55
extensions/ki_export/css/setup.css.php
Normal file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
header('Content-type: text/css');
|
||||
$table_header = "../../../skins/standard/grfx/g3_table_header.png";
|
||||
?>
|
||||
|
||||
#xp {
|
||||
border:1px solid black;
|
||||
margin:0;
|
||||
padding:0;
|
||||
background-color:#eee;
|
||||
position:absolute;
|
||||
overflow:auto;
|
||||
left:10px;
|
||||
}
|
||||
|
||||
#xp {
|
||||
top:200px;
|
||||
z-index:2;
|
||||
}
|
||||
|
||||
#xp_head {
|
||||
border:1px solid black;
|
||||
border-bottom:none;
|
||||
background-image: url('<?php echo $table_header; ?>');
|
||||
position:absolute;
|
||||
height:25px;
|
||||
text-align:left;
|
||||
color:#FFF;
|
||||
left:10px;
|
||||
font-size:11px;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
#xp_head { top:175px; }
|
||||
|
||||
#xp_head table { border:none; }
|
||||
|
||||
#xp_head td {
|
||||
font-weight:bold;
|
||||
color:white;
|
||||
}
|
||||
|
||||
.xp_time_help_table {
|
||||
border-collapse:collapse;
|
||||
}
|
||||
|
||||
.xp_time_description {
|
||||
border-bottom:1px solid gray;
|
||||
}
|
||||
|
||||
.xp_time_shortcut {
|
||||
font-weight:bold;
|
||||
border-bottom:1px solid gray;
|
||||
padding-right:10px;
|
||||
}
|
||||
4
extensions/ki_export/css/styles.css
Normal file
4
extensions/ki_export/css/styles.css
Normal file
@@ -0,0 +1,4 @@
|
||||
@import "setup.css.php";
|
||||
@import "tables.css.php";
|
||||
@import "panel.css";
|
||||
@import "optiontabs.css";
|
||||
290
extensions/ki_export/css/tables.css.php
Normal file
290
extensions/ki_export/css/tables.css.php
Normal file
@@ -0,0 +1,290 @@
|
||||
<?php
|
||||
header('Content-type: text/css');
|
||||
$table_header = "../../../skins/standard/grfx/g3_table_header.png";
|
||||
$schraff3 = "../../../skins/standard/grfx/schraff3.png";
|
||||
?>
|
||||
|
||||
div.ki_export table {
|
||||
border-collapse: collapse;
|
||||
font-size: 11px;
|
||||
color: #363636;
|
||||
border-bottom:1px solid #888;
|
||||
}
|
||||
div.ki_export table a.preselect_lnk {
|
||||
color: #363636;
|
||||
text-decoration:none;
|
||||
border-bottom:1px dotted #bbb;
|
||||
}
|
||||
|
||||
div.ki_export table a:hover {
|
||||
color: #0F9E00;
|
||||
border-bottom:none;
|
||||
}
|
||||
|
||||
div.ki_export table thead {
|
||||
height:25px;
|
||||
text-align:left;
|
||||
color:#FFF;
|
||||
}
|
||||
|
||||
div.ki_export table thead th {
|
||||
background-image: url('<?php echo $table_header; ?>');
|
||||
}
|
||||
|
||||
div.ki_export tr.even td,
|
||||
div.ki_export tr.odd td
|
||||
{
|
||||
border-bottom: none;
|
||||
border-left: none;
|
||||
border-right: 1px dotted #CCC;
|
||||
/* border-top: 1px solid #DDD;*/
|
||||
padding: 3px 4px 4px 5px;
|
||||
}
|
||||
#xp_head td {
|
||||
overflow:hidden;
|
||||
padding: 3px 4px 4px 6px;
|
||||
}
|
||||
|
||||
div.ki_export tr.hover td {
|
||||
background: #FFC !important;
|
||||
/* border-top: 1px solid #666 !important;
|
||||
border-bottom: 1px solid #666 !important;*/
|
||||
}
|
||||
|
||||
div.ki_export tr.even td {
|
||||
background: #FFF;
|
||||
}
|
||||
|
||||
div.ki_export tr.odd td {
|
||||
background: #EEE;
|
||||
}
|
||||
|
||||
|
||||
div#xptable tr.odd td.comment,
|
||||
div#xptable tr.odd td.trackingnr,
|
||||
div#xptable tr.odd td.location {
|
||||
background: #CFE3F5;
|
||||
}
|
||||
|
||||
div#xptable tr.even td.comment,
|
||||
div#xptable tr.even td.trackingnr,
|
||||
div#xptable tr.even td.location {
|
||||
background: #ECF7FD;
|
||||
}
|
||||
div#xptable tr.even.expense td {
|
||||
background: #E5FFBF;
|
||||
}
|
||||
|
||||
div#xptable tr.odd.expense td {
|
||||
background: #DCF4B7;
|
||||
}
|
||||
|
||||
div#xptable tr.odd.expense td.comment,
|
||||
div#xptable tr.odd.expense td.trackingnr,
|
||||
div#xptable tr.odd.expense td.location {
|
||||
background: #A3F1A6;
|
||||
}
|
||||
|
||||
div#xptable tr.even.expense td.comment,
|
||||
div#xptable tr.even.expense td.trackingnr,
|
||||
div#xptable tr.even.expense td.location {
|
||||
background: #C8F1CC;
|
||||
}
|
||||
|
||||
|
||||
|
||||
div#xptable tr.odd td.cleared {
|
||||
background: #6E7882;
|
||||
}
|
||||
|
||||
div#xptable tr.even td.cleared {
|
||||
background: #86939F;
|
||||
}
|
||||
|
||||
|
||||
div#xptable tr td.time {
|
||||
border-bottom:1px dotted white;;
|
||||
}
|
||||
|
||||
div#xptable tr.even td.time {
|
||||
background: #A4E7A5;
|
||||
}
|
||||
|
||||
div#xptable tr.odd td.time {
|
||||
background: #64BF61;
|
||||
}
|
||||
|
||||
div#xptable tr.active td.time {
|
||||
background: #F00;
|
||||
}
|
||||
|
||||
div#xptable tr.expense td.time {
|
||||
background-image:url('<?php echo $schraff3; ?>');
|
||||
}
|
||||
|
||||
|
||||
|
||||
div.ki_export tr td.option,
|
||||
div.ki_export tr td.date,
|
||||
div.ki_export tr td.from,
|
||||
div.ki_export tr td.to,
|
||||
div.ki_export tr td.time,
|
||||
div.ki_export tr td.wage {
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
div.ki_export>div#xp>div#xptable>table>tbody>tr>td.cleared {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
#xp_head table {
|
||||
width:100%;
|
||||
}
|
||||
|
||||
#xp_head td.option,
|
||||
#xp td.option
|
||||
{
|
||||
width:70px;
|
||||
}
|
||||
|
||||
#xp_head td.date,
|
||||
#xp td.date
|
||||
{
|
||||
width:50px;
|
||||
}
|
||||
|
||||
#xp_head td.time,
|
||||
#xp td.time
|
||||
{
|
||||
width:40px;
|
||||
}
|
||||
|
||||
#xp_head td.dec_time,
|
||||
#xp td.dec_time
|
||||
{
|
||||
width:40px;
|
||||
}
|
||||
|
||||
#xp_head td.cash
|
||||
{
|
||||
width: 90px;
|
||||
}
|
||||
|
||||
#xp td.rate
|
||||
{
|
||||
width:40px;
|
||||
}
|
||||
|
||||
#xp td.wage
|
||||
{
|
||||
width:40px;
|
||||
}
|
||||
|
||||
#xp_head td { white-space:nowrap; }
|
||||
|
||||
|
||||
#xp_head td.from,
|
||||
#xp_head td.to,
|
||||
#xp td.from,
|
||||
#xp td.to
|
||||
{
|
||||
width:50px;
|
||||
}
|
||||
|
||||
#xp td.knd {
|
||||
min-width:50px;
|
||||
}
|
||||
|
||||
#xp td.pct {
|
||||
min-width:50px;
|
||||
}
|
||||
|
||||
#xp td.evt {
|
||||
min-width:60px;
|
||||
}
|
||||
|
||||
#xp td.comment {
|
||||
width:80px;
|
||||
}
|
||||
|
||||
#xp td.location {
|
||||
width:30px;
|
||||
}
|
||||
|
||||
#xp td.trackingnr {
|
||||
width:120px;
|
||||
}
|
||||
|
||||
div.ki_export table tr.odd td.disabled {
|
||||
background-color:#FFC7BB !important;
|
||||
}
|
||||
div.ki_export table tr.even td.disabled {
|
||||
background-color:#FFE1DB !important;
|
||||
}
|
||||
|
||||
|
||||
div.ki_export table td.user
|
||||
{
|
||||
width:50px;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
#xp_head td.user
|
||||
{
|
||||
width:100px;
|
||||
}
|
||||
|
||||
|
||||
div.ki_export table td.cleared
|
||||
{
|
||||
width:20px;
|
||||
}
|
||||
|
||||
div.ki_export table td.cleared a
|
||||
{
|
||||
width:13px;
|
||||
height:13px;
|
||||
display:block;
|
||||
float:left;
|
||||
}
|
||||
|
||||
div.ki_export table td.cleared a.is_cleared
|
||||
{
|
||||
background:url('../grfx/cleared.png') 0 -13px no-repeat;
|
||||
}
|
||||
|
||||
div.ki_export table td.cleared a.isnt_cleared
|
||||
{
|
||||
background:url('../grfx/cleared.png') no-repeat;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
div#xp_head div.right
|
||||
{
|
||||
position:absolute;
|
||||
overflow:hidden;
|
||||
width:32px;
|
||||
height:20px;
|
||||
top:3px;
|
||||
right:3px;
|
||||
}
|
||||
|
||||
div#xp_head div.right a
|
||||
{
|
||||
background-image: url('../grfx/invert.png');
|
||||
overflow:hidden;
|
||||
display:block;
|
||||
width:22px;
|
||||
height:16px;
|
||||
text-indent:-500px;
|
||||
|
||||
}
|
||||
|
||||
div#xp_head td {padding: 3px 4px 4px 6px;}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user