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:
TMS
2026-06-18 21:20:26 +00:00
commit eb299c9131
1099 changed files with 359817 additions and 0 deletions

Binary file not shown.

View File

@@ -0,0 +1,61 @@
{literal}
<script type="text/javascript">
$(document).ready(function() {
$('#iv_ext_editVat').ajaxForm(function() {
floaterClose();
});
// prepare Options Object
var options = {
success: function(response) {
if (response == 1) {
$('#defaultVat').html($('#vat').val());
}
floaterClose();
}
};
// pass options to ajaxForm
$('#iv_ext_editVat').ajaxForm(options);
});
</script>
{/literal}
<div id="floater_innerwrap">
<div id="floater_handle">
<span id="floater_title">{$kga.lang.editVat}</span>
<div class="right">
<a href="#" class="close" onClick="floaterClose();">{$kga.lang.close}</a>
</div>
</div>
<div class="floater_content">
<form id="iv_ext_editVat" action="../extensions/ki_invoice/processor.php" method="post">
<input name="id" type="hidden" value="0" />
<input name="axAction" type="hidden" value="editVat" />
<fieldset>
{* -------------------------------------------------------------------- *}
<label for="vat">{$kga.lang.vat}</label>
<input size="4" name="vat" id="vat" type="text" value="{$kga.conf.defaultVat|replace:'.':$kga.conf.decimalSeparator|escape:'html'}"/> %
<div id="formbuttons">
<input class='btn_norm' type='button' value='{$kga.lang.cancel}' onClick='floaterClose(); return false;' />
<input class='btn_ok' type='submit' value='{$kga.lang.submit}'/>
</div>
{* -------------------------------------------------------------------- *}
</fieldset>
</form>
</div>
</div>

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,55 @@
{literal}
<script type="text/javascript">
$(document).ready(function() {
iv_ext_onload();
$('#editVatLink').click(function () {
this.blur();
floaterShow(iv_ext_path + "floaters.php","editVat",0,0,250,100);
});
});
</script>
{/literal}
<div id="iv_ext_header">
<strong>{$kga.lang.ext_invoice.invoiceTitle}</strong>
</div>
<div id="iv_ext_wrap">
<div id ="iv_ext">
<form id="iv_ext_form" method="post" action="../extensions/ki_invoice/print.php" target="_blank">
<div id="iv_ext_advanced">
<div id="iv_ext_form">
{$kga.lang.ext_invoice.invoiceProject}
<select id="iv_pct_ID" name="pct_ID" class="formfield">
{html_options values=$sel_pct_IDs output=$sel_pct_names selected=$pres_pct}
</select>
</div>
<div id="iv_timespan">
{$timespan_display}
</div>
<!--Work in Progress: Select box for form type-->
Invoice Form:
<select id="iv_form_docs" name="ivform_file" class="formfield">
{html_options values=$sel_form_files output=$sel_form_files selected=$pres_form}
</select><br/><br/>
<!-- Some boxes below are checked by default. Delete "checked" to set default to unchecked condition -->
{$kga.lang.ext_invoice.defaultVat}: <span id="defaultVat">{$kga.conf.defaultVat|replace:'.':$kga.conf.decimalSeparator|escape:'html'}</span> % <a id="editVatLink" href="#">({$kga.lang.change})</a> <br/>
<input type=checkbox name="short" checked> {$kga.lang.ext_invoice.invoiceOptionShort}<br/>
<input type=checkbox name="round" checked> {$kga.lang.ext_invoice.invoiceOptionRound}
<select id="iv_round_ID" name="pct_round" class="formfield">
{html_options values=$sel_round_IDs output=$sel_round_names selected=$pres_round}
</select>
<div id="iv_button">
<input type="submit" class="btn_ok" value={$kga.lang.ext_invoice.invoiceButton}>
</div>
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1 @@
{$kga.lang.ext_invoice.invoiceTimePeriod} <b>{$in|date_format:$kga.date_format.2|escape:'html'} - {$out|date_format:$kga.date_format.2|escape:'html'}</b>