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:
113
css/datePicker.css
Normal file
113
css/datePicker.css
Normal file
@@ -0,0 +1,113 @@
|
||||
table.jCalendar {
|
||||
border: 1px solid #888;
|
||||
background: #aaa;
|
||||
}
|
||||
table.jCalendar th {
|
||||
background: #333;
|
||||
color: #fff;
|
||||
font-weight: bold;
|
||||
padding: 3px 5px;
|
||||
}
|
||||
table.jCalendar td {
|
||||
background: #ccc;
|
||||
color: #000;
|
||||
padding: 3px 5px;
|
||||
text-align: center;
|
||||
}
|
||||
table.jCalendar td.other-month {
|
||||
background: #ddd;
|
||||
color: #aaa;
|
||||
}
|
||||
table.jCalendar td.today {
|
||||
background: #666;
|
||||
color: #fff;
|
||||
font-weight: bold;
|
||||
}
|
||||
table.jCalendar td.selected {
|
||||
background: #f66;
|
||||
color: #fff;
|
||||
font-weight: bold;
|
||||
}
|
||||
table.jCalendar td.selected:hover {
|
||||
background: #f33;
|
||||
color: #fff;
|
||||
}
|
||||
table.jCalendar td:hover, table.jCalendar td.dp-hover {
|
||||
background: #fff;
|
||||
color: #000;
|
||||
}
|
||||
table.jCalendar td.disabled, table.jCalendar td.disabled:hover {
|
||||
background: #bbb;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
/* For the popup */
|
||||
|
||||
/* NOTE - you will probably want to style a.dp-choose-date - see how I did it in demo.css */
|
||||
|
||||
div#dp-popup {
|
||||
position: absolute;
|
||||
font-size: 14px;
|
||||
padding: 4px;
|
||||
min-height: 172px;
|
||||
min-width: 171px;
|
||||
border:1px solid #fff;
|
||||
background-color:#333;
|
||||
z-index: 500;
|
||||
}
|
||||
div#dp-popup h2 {
|
||||
color:#fff;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
margin: 2px 0;
|
||||
padding: 0;
|
||||
}
|
||||
a#dp-close {
|
||||
font-size: 11px;
|
||||
padding: 4px 0;
|
||||
text-align: center;
|
||||
display: block;
|
||||
}
|
||||
a#dp-close:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
div#dp-popup a {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
padding: 3px 2px 0;
|
||||
}
|
||||
div#dp-popup div#dp-nav-prev {
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
left: 4px;
|
||||
width: 100px;
|
||||
}
|
||||
div#dp-popup div#dp-nav-prev a {
|
||||
float: left;
|
||||
}
|
||||
/* Opera needs the rules to be this specific otherwise it doesn't change the cursor back to pointer after you have disabled and re-enabled a link */
|
||||
div#dp-popup div#dp-nav-prev a, div#dp-popup div#dp-nav-next a {
|
||||
cursor: pointer;
|
||||
}
|
||||
div#dp-popup div#dp-nav-prev a.disabled, div#dp-popup div#dp-nav-next a.disabled {
|
||||
cursor: default;
|
||||
}
|
||||
div#dp-popup div#dp-nav-next {
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
right: 4px;
|
||||
width: 100px;
|
||||
}
|
||||
div#dp-popup div#dp-nav-next a {
|
||||
float: right;
|
||||
}
|
||||
div#dp-popup a.disabled {
|
||||
cursor: default;
|
||||
color: #aaa;
|
||||
}
|
||||
div#dp-popup td {
|
||||
cursor: pointer;
|
||||
}
|
||||
div#dp-popup td.disabled {
|
||||
cursor: default;
|
||||
}
|
||||
46
css/error.css
Normal file
46
css/error.css
Normal file
@@ -0,0 +1,46 @@
|
||||
html{
|
||||
height: 100%;
|
||||
}
|
||||
body{
|
||||
background-color:#000;
|
||||
color:#FFF;
|
||||
height: 100%;
|
||||
font: 85%/1.5 "Lucida Grande", Calibri, "Segoe Sans", Futura, "Gill Sans", "Lucida Sans", "News Gothic MT", "Bitstream Vera Sans", "Trebuchet MS", sans-serif;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#error_wrapper {
|
||||
background: url('../grfx/error_bg.jpg') no-repeat;
|
||||
position: absolute;
|
||||
width: 425px;
|
||||
height: 189px;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
margin: -94px 0 0 -212px;
|
||||
}
|
||||
|
||||
|
||||
#error_wrapper h3 {
|
||||
margin:0;
|
||||
margin-bottom:5px;
|
||||
}
|
||||
#error_txt {
|
||||
position:relative;
|
||||
display:block;
|
||||
margin:0;
|
||||
padding:10px;
|
||||
overflow:auto;
|
||||
height:167px;
|
||||
width:296px;
|
||||
top:2px;
|
||||
left:109px;
|
||||
}
|
||||
|
||||
#error_button {
|
||||
width:300;
|
||||
margin-top:5px;
|
||||
text-align:right;
|
||||
position:relative;
|
||||
display:block;
|
||||
}
|
||||
15
css/jquery.tabs-ie.css
Normal file
15
css/jquery.tabs-ie.css
Normal file
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
Tabs - additional IE specific bug fixes
|
||||
|
||||
Recommended usage (Conditional Comments):
|
||||
<!--[if lte IE 7]>
|
||||
<link rel="stylesheet" href="tabs_ie.css" type="text/css" media="projection, screen" />
|
||||
<![endif]-->
|
||||
|
||||
*/
|
||||
.tabs-nav { /* auto clear */
|
||||
display: inline-block;
|
||||
}
|
||||
.tabs-nav .tabs-disabled a {
|
||||
filter: alpha(opacity=40);
|
||||
}
|
||||
72
css/jquery.tabs.css
Normal file
72
css/jquery.tabs.css
Normal file
@@ -0,0 +1,72 @@
|
||||
/* Caution! Ensure accessibility in print and other media types... */
|
||||
@media projection, screen { /* Use class for showing/hiding tab content, so that visibility can be better controlled in different media types... */
|
||||
.tabs-hide {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* Hide useless elements in print layouts... */
|
||||
@media print {
|
||||
.tabs-nav {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* Skin */
|
||||
.tabs-nav {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0 0 0 65px;
|
||||
}
|
||||
.tabs-nav:after { /* clearing without presentational markup, IE gets extra treatment */
|
||||
display: block;
|
||||
clear: both;
|
||||
content: " ";
|
||||
}
|
||||
.tabs-nav li {
|
||||
float: left;
|
||||
margin: 0 0 0 1px;
|
||||
}
|
||||
.tabs-nav a {
|
||||
display: block;
|
||||
position: relative;
|
||||
top: 1px;
|
||||
z-index: 300;
|
||||
padding: 6px 2px 0;
|
||||
width: 111px;
|
||||
height: 18px;
|
||||
color: #888;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
line-height: 1.2;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
}
|
||||
.tabs-nav .tabs-selected a {
|
||||
padding-top: 7px;
|
||||
color: #000;
|
||||
}
|
||||
.tabs-nav .tabs-selected a, .tabs-nav a:hover, .tabs-nav a:focus, .tabs-nav a:active {
|
||||
background-position: 0 -50px;
|
||||
outline: 0; /* @ Firefox, switch off dotted border */
|
||||
}
|
||||
.tabs-nav .tabs-disabled a:hover, .tabs-nav .tabs-disabled a:focus, .tabs-nav .tabs-disabled a:active {
|
||||
background-position: 0 0;
|
||||
}
|
||||
.tabs-nav .tabs-selected a:link, .tabs-nav .tabs-selected a:visited,
|
||||
.tabs-nav .tabs-disabled a:link, .tabs-nav .tabs-disabled a:visited { /* @ Opera, use pseudo classes otherwise it confuses cursor... */
|
||||
cursor: text;
|
||||
}
|
||||
.tabs-nav a:hover, .tabs-nav a:focus, .tabs-nav a:active { /* @ Opera, we need to be explicit again here now... */
|
||||
cursor: pointer;
|
||||
}
|
||||
.tabs-nav .tabs-disabled {
|
||||
opacity: .4;
|
||||
}
|
||||
.tabs-container {
|
||||
height:309px;
|
||||
overflow:auto;
|
||||
border-top: 1px solid #97a5b0;
|
||||
padding: 1em 8px;
|
||||
/*background: #fff; /* declare background color for container to avoid distorted fonts in IE while fading */
|
||||
}
|
||||
184
css/login.css
Normal file
184
css/login.css
Normal file
@@ -0,0 +1,184 @@
|
||||
html{
|
||||
height: 100%;
|
||||
}
|
||||
body{
|
||||
background-color:#000;
|
||||
height: 100%;
|
||||
font: 85%/1.5 "Lucida Grande", Calibri, "Segoe Sans", Futura, "Gill Sans", "Lucida Sans", "News Gothic MT", "Bitstream Vera Sans", "Trebuchet MS", sans-serif;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#login{
|
||||
position: absolute;
|
||||
width: 526px;
|
||||
height: 400px;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
margin: -200px 0 0 -263px;
|
||||
}
|
||||
#login form{
|
||||
background:url(../grfx/login_bg_g3.png) no-repeat;
|
||||
display: block;
|
||||
width: 448px;
|
||||
height: 298px;
|
||||
margin: 0 0 0 38px;
|
||||
padding: 0;
|
||||
}
|
||||
#login fieldset {
|
||||
border: 0 none;
|
||||
display: block;
|
||||
margin: 135px 0 0 130px;
|
||||
width: 210px;
|
||||
height: 100px;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
text-align: left;
|
||||
}
|
||||
#login label{
|
||||
display: block;
|
||||
color: #999;
|
||||
height:25px;
|
||||
}
|
||||
#login input{
|
||||
border: 1px solid #ccc;
|
||||
padding: 2px;
|
||||
display: block;
|
||||
width: 140px;
|
||||
position: relative;
|
||||
margin: 0;
|
||||
left: 0;
|
||||
top:-2px;
|
||||
}
|
||||
|
||||
/* of course our best friend needs some special treatment ... */
|
||||
*+html #login input{ left: -130px; top:-5px; }
|
||||
|
||||
#login button{
|
||||
position: absolute;
|
||||
width: 52px;
|
||||
height: 91px;
|
||||
right: 0px;
|
||||
bottom: 0px;
|
||||
background: url(../grfx/login_button_g3.png) no-repeat;
|
||||
text-indent: -1000em;
|
||||
border: 0 none;
|
||||
cursor: pointer;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
#login select {
|
||||
position: absolute;
|
||||
width:100px;
|
||||
top:100px;
|
||||
left:0px;
|
||||
border:1px solid silver;
|
||||
}
|
||||
#login button:hover {
|
||||
background: url(../grfx/login_button_g3.png) no-repeat 0 -91px;
|
||||
cursor: pointer;
|
||||
}
|
||||
#login p, #login p>a {
|
||||
font-size:xx-small;
|
||||
color: #555;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#install {
|
||||
color:#FFF;
|
||||
position: absolute;
|
||||
width: 526px;
|
||||
height: 400px;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
margin: -200px 0 0 -263px;
|
||||
}
|
||||
#install .installtext {
|
||||
/* background-color:#f00;*/
|
||||
width:350px;
|
||||
}
|
||||
#install .welcome {
|
||||
font-size:1.3em;
|
||||
font-weight:bold;
|
||||
color:#15F000;
|
||||
margin-bottom:10px;
|
||||
}
|
||||
#install .txt {
|
||||
margin-bottom:7px;
|
||||
}
|
||||
#install form {
|
||||
background:url(../grfx/login_bg_g3.png) no-repeat;
|
||||
display: block;
|
||||
width: 448px;
|
||||
height: 298px;
|
||||
margin: 0 0 0 38px;
|
||||
padding: 0;
|
||||
}
|
||||
#install fieldset {
|
||||
border: 0 none;
|
||||
display: block;
|
||||
margin: 105px 0 0 15px;
|
||||
width: 420px;
|
||||
height: 160px;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
text-align: left;
|
||||
}
|
||||
#install label{
|
||||
display: block;
|
||||
color: #999;
|
||||
}
|
||||
#install input{
|
||||
border: 1px solid #ccc;
|
||||
padding: 2px;
|
||||
display: block;
|
||||
width: 140px;
|
||||
position: relative;
|
||||
margin: 0;
|
||||
left: 0;
|
||||
}
|
||||
#install button{
|
||||
position: absolute;
|
||||
width: 52px;
|
||||
height: 91px;
|
||||
right: 0px;
|
||||
bottom: 0px;
|
||||
background: url(../grfx/login_button_g3.png) no-repeat;
|
||||
text-indent: -1000em;
|
||||
border: 0 none;
|
||||
cursor: pointer;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
#install button:hover {
|
||||
background: url(../grfx/login_button_g3.png) no-repeat 0 -91px;
|
||||
cursor: pointer;
|
||||
}
|
||||
#install p, #install p>a {
|
||||
font-size:xx-small;
|
||||
color: #555;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#warning {
|
||||
margin:5px 0 0 38px;
|
||||
width:434px;
|
||||
border:2px solid red;
|
||||
padding:10px 5px 5px 5px;
|
||||
background: url(../grfx/bg_warning.gif) repeat-x;
|
||||
}
|
||||
#warning p {
|
||||
padding:0;
|
||||
margin:0;
|
||||
}
|
||||
Reference in New Issue
Block a user