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:
140
extensions/ki_adminpanel/templates/advanced.tpl
Normal file
140
extensions/ki_adminpanel/templates/advanced.tpl
Normal file
@@ -0,0 +1,140 @@
|
||||
{literal}
|
||||
<script type="text/javascript">
|
||||
function cb(data) {
|
||||
if (data=="ok") {
|
||||
window.location.reload();
|
||||
return;
|
||||
}
|
||||
$("#ap_ext_form_editadv_submit").blur();
|
||||
$("#ap_ext_output").width($(".ap_ext_panel_header").width()-22);
|
||||
$("#ap_ext_output").fadeIn(fading_enabled?500:0,function(){
|
||||
$("#ap_ext_output").fadeOut(fading_enabled?4000:0);
|
||||
});
|
||||
}
|
||||
$(document).ready(function() {
|
||||
$('#ap_ext_form_editadv').ajaxForm({target:'#ap_ext_output',success:cb});
|
||||
});
|
||||
</script>
|
||||
{/literal}
|
||||
|
||||
<div class="content">
|
||||
|
||||
<div id="ap_ext_output"></div>
|
||||
|
||||
<form id="ap_ext_form_editadv" action="../extensions/ki_adminpanel/processor.php" method="post">
|
||||
|
||||
<fieldset class="ap_ext_advanced">
|
||||
<div>
|
||||
<input type="text" name="adminmail" size="20" value="{$kga.conf.adminmail|escape:'html'}" class="formfield"> {$kga.lang.adminmail}
|
||||
</div>
|
||||
<div>
|
||||
<input type="text" name="logintries" size="2" value="{$kga.conf.loginTries|escape:'html'}" class="formfield"> {$kga.lang.logintries}
|
||||
</div>
|
||||
<div>
|
||||
<input type="text" name="loginbantime" size="4" value="{$kga.conf.loginBanTime|escape:'html'}" class="formfield"> {$kga.lang.bantime}
|
||||
</div>
|
||||
|
||||
<div id="ap_ext_checkupdate">
|
||||
<a href="javascript:ap_ext_checkupdate();">{$kga.lang.checkupdate}</a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{$kga.lang.lang}: <select name="language" class="formfield">
|
||||
{html_options values=$languages output=$languages selected=$kga.conf.language}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="checkbox" name="show_sensible_data" {if $kga.show_sensible_data}checked="checked"{/if} value="1" class="formfield"> {$kga.lang.show_sensible_data}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="checkbox" name="show_update_warn" {if $kga.show_update_warn}checked="checked"{/if} value="1" class="formfield"> {$kga.lang.show_update_warn}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="checkbox" name="check_at_startup" {if $kga.check_at_startup}checked="checked"{/if} value="1" class="formfield"> {$kga.lang.check_at_startup}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="checkbox" name="show_daySeperatorLines" {if $kga.show_daySeperatorLines}checked="checked"{/if} value="1" class="formfield"> {$kga.lang.show_daySeperatorLines}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="checkbox" name="show_gabBreaks" {if $kga.show_gabBreaks}checked="checked"{/if} value="1" class="formfield"> {$kga.lang.show_gabBreaks}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="checkbox" name="show_RecordAgain" {if $kga.show_RecordAgain}checked="checked"{/if} value="1" class="formfield"> {$kga.lang.show_RecordAgain}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="checkbox" name="show_TrackingNr" {if $kga.show_TrackingNr}checked="checked"{/if} value="1" class="formfield"> {$kga.lang.show_TrackingNr}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="text" name="currency_name" size="8" value="{$kga.currency_name|escape:'html'}" class="formfield"> {$kga.lang.currency_name}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="text" name="currency_sign" size="2" value="{$kga.currency_sign|escape:'html'}" class="formfield"> {$kga.lang.currency_sign}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="checkbox" name="currency_first" {if $kga.conf.currency_first}checked="checked"{/if} value="1" class="formfield"> {$kga.lang.currency_first}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="text" name="date_format_2" size="8" value="{$kga.date_format.2|escape:'html'}" class="formfield"> {$kga.lang.display_date_format}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="text" name="date_format_0" size="8" value="{$kga.date_format.0|escape:'html'}" class="formfield"> {$kga.lang.display_currentDate_format}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="text" name="date_format_1" size="8" value="{$kga.date_format.1|escape:'html'}" class="formfield"> {$kga.lang.table_date_format}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="checkbox" name="durationWithSeconds" {if $kga.conf.durationWithSeconds}checked="checked"{/if} value="1" class="formfield"> {$kga.lang.durationWithSeconds}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{$kga.lang.round_time} <select name="roundPrecision" class="formfield">
|
||||
<option value="0" {if $kga.conf.roundPrecision==0}selected="selected"{/if}>-</option>
|
||||
<option value="1" {if $kga.conf.roundPrecision==1}selected="selected"{/if}>1</option>
|
||||
<option value="5" {if $kga.conf.roundPrecision==5}selected="selected"{/if}>5</option>
|
||||
<option value="10" {if $kga.conf.roundPrecision==10}selected="selected"{/if}>10</option>
|
||||
<option value="15" {if $kga.conf.roundPrecision==15}selected="selected"{/if}>15</option>
|
||||
<option value="15" {if $kga.conf.roundPrecision==20}selected="selected"{/if}>20</option>
|
||||
<option value="30" {if $kga.conf.roundPrecision==30}selected="selected"{/if}>30</option>
|
||||
</select> {$kga.lang.round_time_minute}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{$kga.lang.decimal_separator}: <input type="text" name="decimalSeparator" size="1" value="{$kga.conf.decimalSeparator|escape:'html'}" class="formfield">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<select name="defaultTimezone">
|
||||
{html_options values=$timezones output=$timezones selected=$kga.conf.defaultTimezone}
|
||||
</select> {$kga.lang.defaultTimezone}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="checkbox" name="exactSums" {if $kga.conf.exactSums}checked="checked"{/if} value="1" class="formfield"> {$kga.lang.exactSums}
|
||||
</div>
|
||||
|
||||
|
||||
<input name="axAction" type="hidden" value="sendEditAdvanced" />
|
||||
|
||||
<div id="formbuttons">
|
||||
<input id="ap_ext_form_editadv_submit" class='btn_ok' type='submit' value='{$kga.lang.save}' />
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
21
extensions/ki_adminpanel/templates/database.tpl
Normal file
21
extensions/ki_adminpanel/templates/database.tpl
Normal file
@@ -0,0 +1,21 @@
|
||||
{$kga.lang.DBname}: {$kga.server_database|escape:'html'}
|
||||
<br />
|
||||
<br />
|
||||
<a href="../db_restore.php">Database Backup Utility</a>
|
||||
|
||||
{*
|
||||
<br /><br />
|
||||
|
||||
{$kga.lang.lastdbbackup}:
|
||||
|
||||
{if $kga.conf.lastdbbackup}
|
||||
{$kga.conf.lastdbbackup|date_format}
|
||||
{else}
|
||||
none
|
||||
{/if}
|
||||
|
||||
<br />
|
||||
|
||||
<input class='btn_ok' type='submit' value='{$kga.lang.runbackup}' onClick='backupAll(); return false;' />
|
||||
|
||||
*}
|
||||
74
extensions/ki_adminpanel/templates/evt.tpl
Normal file
74
extensions/ki_adminpanel/templates/evt.tpl
Normal file
@@ -0,0 +1,74 @@
|
||||
|
||||
<a href="#" onClick="floaterShow('floaters.php','add_edit_evt',0,0,450,200); $(this).blur(); return false;"><img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/add.png" width="22" height="16" alt="{$kga.lang.new_evt}"></a> {$kga.lang.new_evt}
|
||||
|
||||
{$kga.lang.view_filter}:
|
||||
<select size="1" id="evt_pct_filter" onchange="ap_ext_refreshSubtab('evt');">
|
||||
<option value="-2" {if $selected_evt_filter==-2}selected="selected"{/if}>{$kga.lang.unassigned}</option>
|
||||
<option value="-1" {if $selected_evt_filter==-1}selected="selected"{/if}>{$kga.lang.all_events}</option>
|
||||
{section name=row loop=$arr_pct}
|
||||
<option value="{$arr_pct[row].pct_ID}"
|
||||
{if $selected_evt_filter==$arr_pct[row].pct_ID}selected="selected"{/if}>{$arr_pct[row].pct_name|escape:'html'} ({$arr_pct[row].knd_name|truncate:30:"..."|escape:'html'})</option>
|
||||
{/section}
|
||||
</select>
|
||||
<br/><br/>
|
||||
|
||||
{cycle values="odd,even" reset=true print=false}
|
||||
<table>
|
||||
|
||||
<thead>
|
||||
<tr class='headerrow'>
|
||||
<th>{$kga.lang.options}</th>
|
||||
<th>{$kga.lang.evts}</th>
|
||||
<th>{$kga.lang.groups}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
|
||||
<tbody>
|
||||
|
||||
{section name=row loop=$arr_evt}
|
||||
{if $arr_evt[row].evt_visible || $arr_evt[row].zeit != "0:00"}
|
||||
|
||||
<tr class="{cycle values="odd,even"}">
|
||||
|
||||
<td class="option">
|
||||
<a href ="#" onClick="editSubject('evt',{$arr_evt[row].evt_ID}); $(this).blur(); return false;">
|
||||
<img src='../skins/{$kga.conf.skin|escape:'html'}/grfx/edit2.gif' width='13' height='13' alt='{$kga.lang.edit}' title='{$kga.lang.edit}' border='0' />
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
<a href="#" id="delete_evt{$arr_evt[row].evt_ID}" onClick="ap_ext_deleteEvent({$arr_evt[row].evt_ID})">
|
||||
<img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/button_trashcan.png" title="{$kga.lang.delevt}" width="13" height="13" alt="{$kga.lang.delevt}" border="0">
|
||||
</a>
|
||||
</td>
|
||||
|
||||
<td class="events">
|
||||
{if $arr_evt[row].evt_visible != 1}<span style="color:#bbb">{/if}
|
||||
{$arr_evt[row].evt_name|escape:'html'}
|
||||
{if $arr_evt[row].evt_visible != 1}</span>{/if}
|
||||
</td>
|
||||
|
||||
<td>
|
||||
{$arr_evt[row].groups|escape:'html'}
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
{/if}
|
||||
{/section}
|
||||
|
||||
|
||||
|
||||
|
||||
{if $arr_evt == '0'}
|
||||
<tr>
|
||||
<td colspan='3'>
|
||||
<strong style="color:red">{$kga.lang.noItems}</strong>
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
48
extensions/ki_adminpanel/templates/floaters/editgroup.tpl
Normal file
48
extensions/ki_adminpanel/templates/floaters/editgroup.tpl
Normal file
@@ -0,0 +1,48 @@
|
||||
{literal}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('#ap_ext_form_editgrp').ajaxForm(function() {
|
||||
floaterClose();
|
||||
ap_ext_refreshSubtab('grp');
|
||||
ap_ext_refreshSubtab('usr');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{/literal}
|
||||
|
||||
<div id="floater_innerwrap">
|
||||
|
||||
<div id="floater_handle">
|
||||
<span id="floater_title">{$kga.lang.editgrp}</span>
|
||||
<div class="right">
|
||||
<a href="#" class="close" onClick="floaterClose();">{$kga.lang.close}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="floater_content">
|
||||
<form id="ap_ext_form_editgrp" action="../extensions/ki_adminpanel/processor.php" method="post">
|
||||
<fieldset>
|
||||
<ul>
|
||||
<li>
|
||||
<label for="grp_name">{$kga.lang.groupname}:</label>
|
||||
<input class="formfield" type="text" name="grp_name" value="{$grp_details.grp_name|escape:'html'}" size=35 />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label for="grp_leader" >{$kga.lang.groupleader}:</label>
|
||||
<select class="formfield" name="grp_leader[]" multiple size='5' style="width:255px">
|
||||
{html_options values=$arr_usr_ID output=$arr_usr_name selected=$grp_selection}
|
||||
</select>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
<input name="id" type="hidden" value="{$grp_details.grp_ID}" />
|
||||
<input name="axAction" type="hidden" value="sendEditGrp" />
|
||||
<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>
|
||||
126
extensions/ki_adminpanel/templates/floaters/edituser.tpl
Normal file
126
extensions/ki_adminpanel/templates/floaters/edituser.tpl
Normal file
@@ -0,0 +1,126 @@
|
||||
{literal}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
|
||||
var options = {
|
||||
beforeSubmit: function() {
|
||||
|
||||
if ($('#password').val() != '' && !validatePassword($('#password').val(),$('#retypePassword').val()))
|
||||
return false;
|
||||
|
||||
floaterClose();
|
||||
},
|
||||
success: function() {
|
||||
hook_chgUsr();
|
||||
ap_ext_refreshSubtab('grp');
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
$('#ap_ext_form_editusr').ajaxForm(options);
|
||||
|
||||
});
|
||||
</script>
|
||||
{/literal}
|
||||
|
||||
<div id="floater_innerwrap">
|
||||
|
||||
<div id="floater_handle">
|
||||
<span id="floater_title">{$kga.lang.editusr}</span>
|
||||
<div class="right">
|
||||
<a href="#" class="close" onClick="floaterClose();">{$kga.lang.close}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="floater_content">
|
||||
|
||||
<form id="ap_ext_form_editusr" action="../extensions/ki_adminpanel/processor.php" method="post">
|
||||
<fieldset>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<label for="usr_name">{$kga.lang.username}:</label>
|
||||
<input class="formfield" type="text" name="usr_name" value="{$usr_details.usr_name|escape:'html'}" maxlength=20 size=20 />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label for="usr_sts">{$kga.lang.status}:</label>
|
||||
|
||||
{if $usr_details.usr_sts == 1}
|
||||
<select name="usr_sts">
|
||||
<option value="0" {if $usr_details.usr_sts == 0}selected{/if}>{$kga.lang.adminusr} (!)</option>
|
||||
<option value="1" {if $usr_details.usr_sts == 1}selected{/if}>{$kga.lang.groupleader}</option>
|
||||
<option value="2" {if $usr_details.usr_sts == 2}selected{/if}>{$kga.lang.regusr}</option>
|
||||
</select>
|
||||
{else}
|
||||
|
||||
|
||||
{if $curr_user == $usr_details.usr_name && $usr_details.usr_sts == 0}
|
||||
{$kga.lang.admWarn}
|
||||
{else}
|
||||
<select name="usr_sts">
|
||||
<option value="0" {if $usr_details.usr_sts == 0}selected{/if}>{$kga.lang.adminusr} (!)</option>
|
||||
<option value="2" {if $usr_details.usr_sts == 2}selected{/if}>{$kga.lang.regusr}</option>
|
||||
</select>
|
||||
{/if}
|
||||
|
||||
{/if}
|
||||
</li>
|
||||
|
||||
|
||||
<li>
|
||||
<label for="usr_pw">{$kga.lang.newPassword}:</label>
|
||||
<input class="formfield" type="password" name="usr_pw" size="9" id="password" /> {$kga.lang.minLength}
|
||||
{if $usr_details.usr_pw == "no"}
|
||||
|
||||
<br/>
|
||||
<img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/caution_mini.png" alt="Caution" valign=middle />
|
||||
<strong style="color:red">{$kga.lang.nopassword}</strong>
|
||||
{/if}
|
||||
</li>
|
||||
|
||||
|
||||
<li>
|
||||
<label for="usr_pw">{$kga.lang.retypePassword}:</label>
|
||||
<input class="formfield" type="password" name="retypePassword" id="retypePassword" size="9" />
|
||||
</li>
|
||||
|
||||
|
||||
<li>
|
||||
<label for="usr_rate">{$kga.lang.rate}:</label>
|
||||
<input class="formfield" type="text" name="usr_rate" value="{$usr_details.usr_rate|number_format:2:$kga.conf.decimalSeparator:""|escape:'html'}" />
|
||||
</li>
|
||||
|
||||
|
||||
<li>
|
||||
<label for="usr_mail">{$kga.lang.mail}:</label>
|
||||
<input class="formfield" type="text" name="usr_mail" value="{$usr_details.usr_mail|escape:'html'}" />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label for="usr_alias">{$kga.lang.alias}:</label>
|
||||
<input class="formfield" type="text" name="usr_alias" value="{$usr_details.usr_alias|escape:'html'}" />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label for="usr_grp">{$kga.lang.group}:</label>
|
||||
<select class="formfield" name="usr_grp">
|
||||
{html_options values=$arr_grp_ID output=$arr_grp_name selected=$usr_details.usr_grp}
|
||||
</select>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<input name="id" type="hidden" value="{$usr_details.usr_ID}" />
|
||||
<input name="axAction" type="hidden" value="sendEditUsr" />
|
||||
|
||||
<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>
|
||||
86
extensions/ki_adminpanel/templates/groups.tpl
Normal file
86
extensions/ki_adminpanel/templates/groups.tpl
Normal file
@@ -0,0 +1,86 @@
|
||||
<form>
|
||||
<input type=text id="newgroup" class="formfield"></input>
|
||||
<input class='btn_ok' type=submit value="{$kga.lang.addgroup}" onclick="ap_ext_newGroup(); return false;">
|
||||
</form>
|
||||
<br />
|
||||
<table>
|
||||
<thead>
|
||||
<tr class='headerrow'>
|
||||
<th>{$kga.lang.group}</th>
|
||||
<th>{$kga.lang.options}</th>
|
||||
<th>{$kga.lang.members}</th>
|
||||
<th>{$kga.lang.groupleader}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
|
||||
{section name=grouparray loop=$arr_grp}
|
||||
<tr class='{cycle values="even,odd"}'>
|
||||
|
||||
<td>
|
||||
{if $arr_grp[grouparray].grp_ID == 1}
|
||||
<span style="color:red">{$arr_grp[grouparray].grp_name|escape:'html'}</span>
|
||||
{else}
|
||||
{$arr_grp[grouparray].grp_name|escape:'html'}
|
||||
{/if}
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
<td>{strip}
|
||||
<a href="#" onClick="ap_ext_editGroup('{$arr_grp[grouparray].grp_ID}'); $(this).blur(); return false;">
|
||||
<img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/edit2.gif" title="{$kga.lang.editgrp}" width="13" height="13" alt="{$kga.lang.editgrp}" border="0">
|
||||
</a>
|
||||
|
||||
|
||||
{*
|
||||
<a href="#" onClick="switchGrp('{$arr_grp[grouparray].grp_ID}'); return false;">
|
||||
<img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/auge.png" title="{$kga.lang.switchgrp}" width="16" height="13" alt="{$kga.lang.switchgrp}" border="0">
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
<a href="#" onClick="backupGrp({$arr_grp[grouparray].grp_ID}); return false;">
|
||||
<img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/button_backup.gif" title="{$kga.lang.backupgrp}" width="12" height="13" border="0" alt="{$kga.lang.backupgrp}">
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
<a href="mailto:{$arr_grp[grouparray].grp_mail|escape:'html'}">
|
||||
<img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/button_mail_.gif" title="{$kga.lang.mailgrp}" width="12" height="13" alt="{$kga.lang.mailgrp}" border="0">
|
||||
</a>
|
||||
|
||||
|
||||
*}
|
||||
|
||||
{if $arr_grp[grouparray].count_users == 0}
|
||||
<a href="#" onClick="ap_ext_deleteGroup({$arr_grp[grouparray].grp_ID})">
|
||||
<img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/button_trashcan.png" title="{$kga.lang.delgrp}" width="13" height="13" alt="{$kga.lang.delgrp}" border="0">
|
||||
</a>
|
||||
{else}
|
||||
<img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/button_trashcan_.png" title="{$kga.lang.delgrp}" width="13" height="13" alt="{$kga.lang.delgrp}" border="0">
|
||||
{/if}
|
||||
|
||||
{/strip}</td>
|
||||
|
||||
<td>{$arr_grp[grouparray].count_users}</td>
|
||||
|
||||
|
||||
{*Display name(s) of the group-leader(s)*}
|
||||
|
||||
|
||||
<td>
|
||||
{foreach item=leader from=$arr_grp[grouparray].leader_name}
|
||||
{$leader|escape:'html'}
|
||||
{/foreach}
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
</tr>
|
||||
{/section}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
64
extensions/ki_adminpanel/templates/knd.tpl
Normal file
64
extensions/ki_adminpanel/templates/knd.tpl
Normal file
@@ -0,0 +1,64 @@
|
||||
<a href="#" onClick="floaterShow('floaters.php','add_edit_knd',0,0,450,200); $(this).blur(); return false;"><img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/add.png" width="22" height="16" alt="{$kga.lang.new_knd}"></a> {$kga.lang.new_knd}
|
||||
<br/><br/>
|
||||
|
||||
{cycle values="odd,even" reset=true print=false}
|
||||
<table>
|
||||
|
||||
<thead>
|
||||
<tr class='headerrow'>
|
||||
<th>{$kga.lang.options}</th>
|
||||
<th>{$kga.lang.knds}</th>
|
||||
<th>{$kga.lang.contactPerson}</th>
|
||||
<th>{$kga.lang.groups}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
|
||||
<tbody>
|
||||
|
||||
{section name=row loop=$arr_knd}
|
||||
{if $arr_knd[row].knd_visible || $arr_knd[row].zeit != "0:00"}
|
||||
|
||||
<tr class="{cycle values="odd,even"}">
|
||||
|
||||
<td class="option">
|
||||
<a href ="#" onClick="editSubject('knd',{$arr_knd[row].knd_ID}); $(this).blur(); return false;">
|
||||
<img src='../skins/{$kga.conf.skin|escape:'html'}/grfx/edit2.gif' width='13' height='13' alt='{$kga.lang.edit}' title='{$kga.lang.edit}' border='0' />
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
<a href="#" id="delete_knd{$arr_knd[row].knd_ID}" onClick="ap_ext_deleteCustomer({$arr_knd[row].knd_ID})">
|
||||
<img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/button_trashcan.png" title="{$kga.lang.delknd}" width="13" height="13" alt="{$kga.lang.delknd}" border="0">
|
||||
</a>
|
||||
</td>
|
||||
|
||||
<td class="clients">
|
||||
{if $arr_knd[row].knd_visible != 1}<span style="color:#bbb">{/if}
|
||||
{$arr_knd[row].knd_name|escape:'html'}
|
||||
{if $arr_knd[row].knd_visible != 1}</span>{/if}
|
||||
</td>
|
||||
|
||||
<td>
|
||||
{$arr_knd[row].knd_contact|escape:'html'}
|
||||
</td>
|
||||
|
||||
<td>
|
||||
{$arr_knd[row].groups|escape:'html'}
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
{/if}
|
||||
{/section}
|
||||
|
||||
{if $arr_knd == '0'}
|
||||
<tr>
|
||||
<td colspan='3'>
|
||||
<strong style="color:red">{$kga.lang.noItems}</strong>
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
115
extensions/ki_adminpanel/templates/main.tpl
Normal file
115
extensions/ki_adminpanel/templates/main.tpl
Normal file
@@ -0,0 +1,115 @@
|
||||
{literal}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
ap_ext_onload();
|
||||
});
|
||||
</script>
|
||||
{/literal}
|
||||
|
||||
<div id="ap_ext_panel">
|
||||
|
||||
{* edit customers *}
|
||||
|
||||
<div id="ap_ext_sub5">
|
||||
<div class="ap_ext_panel_header">
|
||||
<a onClick="ap_ext_subtab_expand(5)">
|
||||
<span class="ap_ext_accordeon_triangle"></span>
|
||||
{$kga.lang.knds}
|
||||
</a>
|
||||
</div>
|
||||
<div id="ap_ext_s5" class="ap_ext_subtab ap_ext_subject">
|
||||
{$knd_display}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{* edit projects *}
|
||||
|
||||
<div id="ap_ext_sub6">
|
||||
<div class="ap_ext_panel_header">
|
||||
<a onClick="ap_ext_subtab_expand(6)">
|
||||
<span class="ap_ext_accordeon_triangle"></span>
|
||||
{$kga.lang.pcts}
|
||||
</a>
|
||||
</div>
|
||||
<div id="ap_ext_s6" class="ap_ext_subtab ap_ext_subject">
|
||||
{$pct_display}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{* edit events *}
|
||||
|
||||
<div id="ap_ext_sub7">
|
||||
<div class="ap_ext_panel_header">
|
||||
<a onClick="ap_ext_subtab_expand(7)">
|
||||
<span class="ap_ext_accordeon_triangle"></span>
|
||||
{$kga.lang.evts}
|
||||
</a>
|
||||
</div>
|
||||
<div id="ap_ext_s7" class="ap_ext_subtab ap_ext_subject">
|
||||
{$evt_display}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{* edit users *}
|
||||
{ if $kga.usr.usr_sts == 0 }
|
||||
<div id="ap_ext_sub1">
|
||||
<div class="ap_ext_panel_header">
|
||||
<a onClick="ap_ext_subtab_expand(1)">
|
||||
<span class="ap_ext_accordeon_triangle"></span>
|
||||
{$kga.lang.users}
|
||||
</a>
|
||||
</div>
|
||||
<div id="ap_ext_s1" class="ap_ext_subtab ap_ext_4cols">
|
||||
{$admin.users}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{* edit groups *}
|
||||
|
||||
<div id="ap_ext_sub2">
|
||||
<div class="ap_ext_panel_header">
|
||||
<a onClick="ap_ext_subtab_expand(2)">
|
||||
<span class="ap_ext_accordeon_triangle"></span>
|
||||
{$kga.lang.groups}
|
||||
</a>
|
||||
</div>
|
||||
<div id="ap_ext_s2" class="ap_ext_subtab ap_ext_4cols">
|
||||
{$admin.groups}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{* advanced *}
|
||||
{ if $kga.usr.usr_sts == 0 }
|
||||
<div id="ap_ext_sub3">
|
||||
<div class="ap_ext_panel_header">
|
||||
<a onClick="ap_ext_subtab_expand(3)">
|
||||
<span class="ap_ext_accordeon_triangle"></span>
|
||||
{$kga.lang.advanced}
|
||||
</a>
|
||||
</div>
|
||||
<div id="ap_ext_s3" class="ap_ext_subtab ap_ext_4cols">
|
||||
{$admin.advanced}
|
||||
</div>
|
||||
</div>
|
||||
{ /if}
|
||||
|
||||
{* DB *}
|
||||
{ if $kga.usr.usr_sts == 0 }
|
||||
<div id="ap_ext_sub4">
|
||||
<div class="ap_ext_panel_header">
|
||||
<a onClick="ap_ext_subtab_expand(4)">
|
||||
<span class="ap_ext_accordeon_triangle"></span>
|
||||
{$kga.lang.database}
|
||||
</a>
|
||||
</div>
|
||||
<div id="ap_ext_s4" class="ap_ext_subtab ap_ext_4cols">
|
||||
{$admin.database}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{ /if}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
62
extensions/ki_adminpanel/templates/pct.tpl
Normal file
62
extensions/ki_adminpanel/templates/pct.tpl
Normal file
@@ -0,0 +1,62 @@
|
||||
<a href="#" onClick="floaterShow('floaters.php','add_edit_pct',0,0,450,200); $(this).blur(); return false;"><img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/add.png" width="22" height="16" alt="{$kga.lang.new_pct}"></a> {$kga.lang.new_pct}
|
||||
<br/><br/>
|
||||
|
||||
{cycle values="odd,even" reset=true print=false}
|
||||
<table>
|
||||
|
||||
<thead>
|
||||
<tr class='headerrow'>
|
||||
<th>{$kga.lang.options}</th>
|
||||
<th>{$kga.lang.pcts}</th>
|
||||
<th>{$kga.lang.groups}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
|
||||
<tbody>
|
||||
|
||||
{section name=row loop=$arr_pct}
|
||||
{if $arr_pct[row].pct_visible || $arr_pct[row].zeit != "0:00"}
|
||||
<tr class="{cycle values="odd,even"}">
|
||||
|
||||
<td class="option">
|
||||
<a href ="#" onClick="editSubject('pct',{$arr_pct[row].pct_ID}); $(this).blur(); return false;">
|
||||
<img src='../skins/{$kga.conf.skin|escape:'html'}/grfx/edit2.gif' width='13' height='13' alt='{$kga.lang.edit}' title='{$kga.lang.edit}' border='0' />
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
<a href="#" id="delete_pct{$arr_pct[row].pct_ID}" onClick="ap_ext_deleteProject({$arr_pct[row].pct_ID})">
|
||||
<img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/button_trashcan.png" title="{$kga.lang.delpct}" width="13" height="13" alt="{$kga.lang.delpct}" border="0">
|
||||
</a>
|
||||
</td>
|
||||
|
||||
<td class="projects">
|
||||
{if $arr_pct[row].pct_visible != 1}<span style="color:#bbb">{/if}
|
||||
{if $kga.conf.flip_pct_display}
|
||||
<span class="lighter">{$arr_pct[row].knd_name|truncate:30:"..."|escape:'html'}:</span> {$arr_pct[row].pct_name|escape:'html'}
|
||||
{else}
|
||||
{$arr_pct[row].pct_name|escape:'html'} <span class="lighter">({$arr_pct[row].knd_name|truncate:30:"..."|escape:'html'})</span>
|
||||
{/if}
|
||||
{if $arr_pct[row].pct_visible != 1}</span>{/if}
|
||||
</td>
|
||||
|
||||
<td>
|
||||
{$arr_pct[row].groups|escape:'html'}
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
{/if}
|
||||
{/section}
|
||||
|
||||
{if $arr_pct == '0'}
|
||||
<tr>
|
||||
<td colspan='3'>
|
||||
<strong style="color:red">{$kga.lang.noItems}</strong>
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
180
extensions/ki_adminpanel/templates/users.tpl
Normal file
180
extensions/ki_adminpanel/templates/users.tpl
Normal file
@@ -0,0 +1,180 @@
|
||||
{*########## field for add new user ##########*}
|
||||
<form>
|
||||
<input type=text id="newuser" class="formfield"></input>
|
||||
<input class='btn_ok' type="submit" value="{$kga.lang.adduser}" onclick="ap_ext_newUser(); return false;">
|
||||
{if $showDeletedUsers}
|
||||
<input class='btn_ok' type="button" value="{$kga.lang.hidedeletedusers}" onclick="ap_ext_hideDeletedUsers(); return false;">
|
||||
{else}
|
||||
<input class='btn_ok' type="button" value="{$kga.lang.showdeletedusers}" onclick="ap_ext_showDeletedUsers(); return false;">
|
||||
{/if}
|
||||
</form>
|
||||
{*########## field for add new user ##########*}
|
||||
|
||||
|
||||
|
||||
<br />
|
||||
|
||||
|
||||
|
||||
<table>
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{$kga.lang.username}</th>
|
||||
<th>{$kga.lang.options}</th>
|
||||
<th>{$kga.lang.status}</th>
|
||||
<th>{$kga.lang.group}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
|
||||
<tbody>
|
||||
{section name=userarray loop=$arr_usr}{strip}
|
||||
<tr class='{cycle values="even,odd"}'>
|
||||
|
||||
|
||||
|
||||
{*########## USER NAME ##########*}
|
||||
<td>
|
||||
{if $curr_user == $arr_usr[userarray].usr_name}
|
||||
<strong style="color:#00E600">{$arr_usr[userarray].usr_name|escape:'html'}</strong>
|
||||
{else}
|
||||
{if $arr_usr[userarray].usr_trash}<span style="color:#999">{/if}
|
||||
{$arr_usr[userarray].usr_name|escape:'html'}
|
||||
{if $arr_usr[userarray].usr_trash}</span>{/if}
|
||||
{/if}
|
||||
</td>
|
||||
{*########## /USER NAME ##########*}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{*########## Option cells ##########*}
|
||||
<td>
|
||||
|
||||
<a href="#" onClick="ap_ext_editUser('{$arr_usr[userarray].usr_ID}'); $(this).blur(); return false;">
|
||||
<img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/edit2.gif" title="{$kga.lang.editusr}" width="13" height="13" alt="{$kga.lang.editusr}" border="0">
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
{*
|
||||
{if $curr_user != $arr_usr[userarray].usr_name}
|
||||
<a href="#" onClick="switchUsr('{$arr_usr[userarray].usr_ID}'); return false;">
|
||||
<img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/auge.png" title="{$kga.lang.switchusr}" width="16" height="13" alt="{$kga.lang.switchusr}" border="0">
|
||||
</a>
|
||||
{else}
|
||||
<img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/auge_.gif" title="{$kga.lang.switchusr}" width="16" height="13" alt="{$kga.lang.switchusr}" border="0">
|
||||
{/if}
|
||||
|
||||
|
||||
|
||||
<a href="#" onClick="backupUsr({$arr_usr[userarray].usr_ID}); return false;">
|
||||
<img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/button_backup.gif" title="{$kga.lang.backupusr}" width="12" height="13" border=0 alt="{$kga.lang.backupusr}">
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
*}
|
||||
|
||||
{if $arr_usr[userarray].usr_mail}
|
||||
<a href="mailto:{$arr_usr[userarray].usr_mail|escape:'html'}">
|
||||
<img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/button_mail.gif" title="{$kga.lang.mailusr}" width="12" height="13" alt="{$kga.lang.mailusr}" border="0">
|
||||
</a>
|
||||
{else}
|
||||
<img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/button_mail_.gif" title="{$kga.lang.mailusr}" width="12" height="13" alt="{$kga.lang.mailusr}" border="0">
|
||||
{/if}
|
||||
|
||||
|
||||
|
||||
{if $curr_user != $arr_usr[userarray].usr_name}
|
||||
<a href="#" id="delete_usr{$arr_usr[userarray].usr_ID}" onClick="ap_ext_deleteUser({$arr_usr[userarray].usr_ID})">
|
||||
<img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/button_trashcan.png" title="{$kga.lang.delusr}" width="13" height="13" alt="{$kga.lang.delusr}" border="0">
|
||||
</a>
|
||||
{else}
|
||||
<img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/button_trashcan_.png" title="{$kga.lang.delusr}" width="13" height="13" alt="{$kga.lang.delusr}" border="0">
|
||||
{/if}
|
||||
|
||||
</td>
|
||||
{*########## /Option cells ##########*}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{*########## Status cells ##########*}
|
||||
<td>
|
||||
{if $arr_usr[userarray].usr_sts == 0}
|
||||
<img src='../skins/{$kga.conf.skin|escape:'html'}/grfx/crown.png' alt='{$kga.lang.adminusr}' title='{$kga.lang.adminusr}' border="0">
|
||||
{/if}
|
||||
|
||||
{if $arr_usr[userarray].usr_sts == 1}
|
||||
<img src='../skins/{$kga.conf.skin|escape:'html'}/grfx/leader.gif' alt='{$kga.lang.groupleader}' title='{$kga.lang.groupleader}' border="0">
|
||||
{/if}
|
||||
|
||||
{if $arr_usr[userarray].usr_sts == 2}
|
||||
<img src='../skins/{$kga.conf.skin|escape:'html'}/grfx/user.gif' alt='{$kga.lang.regusr}' title='{$kga.lang.regusr}' border="0">
|
||||
{/if}
|
||||
|
||||
|
||||
|
||||
{if $arr_usr[userarray].usr_active == 1}
|
||||
{if $curr_user != $arr_usr[userarray].usr_name}
|
||||
<a href="#" id="ban{$arr_usr[userarray].usr_ID}" onClick="ap_ext_banUser('{$arr_usr[userarray].usr_ID}'); return false;">
|
||||
<img src='../skins/{$kga.conf.skin|escape:'html'}/grfx/jipp.gif' alt='{$kga.lang.activeusr}' title='{$kga.lang.activeusr}' border="0" width="16" height="16" />
|
||||
</a>
|
||||
{else}
|
||||
<img src='../skins/{$kga.conf.skin|escape:'html'}/grfx/jipp_.gif' alt='{$kga.lang.activeusr}' title='{$kga.lang.activeusr}' border="0" width="16" height="16" />
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
{if $arr_usr[userarray].usr_active == 0}
|
||||
<a href="#" id="ban{$arr_usr[userarray].usr_ID}" onClick="ap_ext_unbanUser('{$arr_usr[userarray].usr_ID}'); return false;">
|
||||
<img src='../skins/{$kga.conf.skin|escape:'html'}/grfx/lock.png' alt='{$kga.lang.bannedusr}' title='{$kga.lang.bannedusr}' border="0" width="16" height="16" />
|
||||
</a>
|
||||
{/if}
|
||||
|
||||
|
||||
|
||||
{if $arr_usr[userarray].usr_pw == "no"}
|
||||
<a href="#" onClick="ap_ext_editUser('{$arr_usr[userarray].usr_ID}'); $(this).blur(); return false;">
|
||||
<img src="../skins/{$kga.conf.skin|escape:'html'}/grfx/caution_mini.png" width="16" height="16" title='{$kga.lang.nopassword}' border="0">
|
||||
</a>
|
||||
{/if}
|
||||
|
||||
|
||||
|
||||
{if $arr_usr[userarray].usr_trash}
|
||||
<strong style="color:red">X</strong>
|
||||
{/if}
|
||||
|
||||
|
||||
</td>
|
||||
{*########## /Status cells ##########*}
|
||||
|
||||
|
||||
|
||||
|
||||
{*########## Group cells ##########*}
|
||||
<td>
|
||||
{if $arr_usr[userarray].usr_grp == 1}
|
||||
<span style="color:red">{$arr_usr[userarray].grp_name|escape:'html'}</span>
|
||||
{else}
|
||||
{$arr_usr[userarray].grp_name|escape:'html'}
|
||||
{/if}
|
||||
</td>
|
||||
{*########## Group cells ##########*}
|
||||
|
||||
</tr>
|
||||
</tbody>
|
||||
{/strip}{/section}
|
||||
|
||||
</table>
|
||||
|
||||
<p><strong>{$kga.lang.hint}</strong> {$kga.lang.usr_caution1} '{$curr_user|escape:'html'}' {$kga.lang.usr_caution2}</p>
|
||||
Reference in New Issue
Block a user