Bestehende Codebasis als Ausgangsstand aufgenommen. - .gitignore: Kundendaten (uploads_*), Smarty-Compile-Cache (templates_c), Laufzeit-Temp und Datenbank-Dumps ausgeschlossen; Verzeichnisstruktur ueber .gitkeep erhalten - .gitattributes: Zeilenenden normalisiert (LF im Repo), Binaerformate markiert - db-backup.php: MySQL-Zugangsdaten kommen jetzt wie im Rest der Anwendung aus der externen Konfiguration statt hartkodiert aus der Datei; Passwort wird ueber eine temporaere Optionsdatei statt per Kommandozeile uebergeben, Fehler von mysqldump/gzip werden gemeldet, Aufraeumen aelterer Backups berechnet Jahr und Monat konsistent Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
131 lines
4.5 KiB
Smarty
131 lines
4.5 KiB
Smarty
{if $smarty.session.login == "valid"}
|
|
|
|
<h2>Diese Einstellungen gelten nur für Ihren Benutzer.</h2>
|
|
<br />
|
|
<div class='widthlimiter'>
|
|
|
|
<form method='POST' id='mainform' action='?action=settings&formsent=1'>
|
|
<div id="tabs">
|
|
{* ANZEIGE PANE *}
|
|
<ul>
|
|
<li><a href="#tabs-1" class='noloading'>Design</a></li>
|
|
<li><a href="#tabs-2" class='noloading'>Kunden</a></li>
|
|
<li><a href="#tabs-3" class='noloading'>Termine</a></li>
|
|
<li><a href="#tabs-4" class='noloading'>Dokumente</a></li>
|
|
<li><a href="#tabs-5" class='noloading'>Suche</a></li>
|
|
{if $superadmin}
|
|
<li><a href="#tabs-6" class='noloading'>Benutzer</a></li>
|
|
{/if}
|
|
</ul>
|
|
<div id="tabs-1">
|
|
<label>Design</label>
|
|
{html_options name=style options=$styles selected=$smarty.session.style class='preim' title='Bitte wählen Sie hier das gewünschte Programmdesign aus.'}
|
|
<br />
|
|
</div>
|
|
{* KUNDEN PANE *}
|
|
<div id="tabs-2">
|
|
|
|
</div>
|
|
{* TERMINE PANE *}
|
|
<div id="tabs-3">
|
|
|
|
</div>
|
|
{* DOKUMENTE PANE *}
|
|
<div id="tabs-4">
|
|
<fieldset>
|
|
<legend>Buchungskonten:</legend>
|
|
<a href="?action=settings&do=buchKto&add=1"><span class="add" title="Neues Buchungskonto anlegen"></span></a>
|
|
<table>
|
|
<tr><th>Konto:</th><th>Name:</th><th>Beschreibung:</th></tr>
|
|
{section name=rows loop=$buchKto}
|
|
<tr style='background-color: #{cycle values="f0f0f0,e2e2e2"}'>
|
|
<td>{$buchKto[rows].kto}</td>
|
|
<td>{$buchKto[rows].name}</td>
|
|
<td>{$buchKto[rows].descr}</td>
|
|
</tr>
|
|
{/section}
|
|
</table>
|
|
</fieldset>
|
|
<fieldset>
|
|
<legend>Zahlungsziele:</legend>
|
|
<a href="?action=settings&do=zahlziel&add=1"><span class="add" title="Neues Zahlungsziel anlegen"></span></a>
|
|
<table>
|
|
<tr><th>Zahlungsziel</th></tr>
|
|
{section name=rows loop=$zahlziele}
|
|
<tr style='background-color: #{cycle values="f0f0f0,e2e2e2"}'>
|
|
<td>{$zahlziele[rows].ziel}</td>
|
|
</tr>
|
|
{/section}
|
|
</table>
|
|
</fieldset>
|
|
{if $show_sks}
|
|
<label>SKS Artikel bei Kundendetails auflisten</label><input type='checkbox' id='show_sks' name='show_sks' value='1' checked='checked'></input>
|
|
{else}
|
|
<label>SKS Artikel bei Kundendetails auflisten</label><input type='checkbox' id='show_sks' name='show_sks' value='1'></input>
|
|
{/if}
|
|
<br />
|
|
</div>
|
|
{* SUCHE PANE *}
|
|
<div id="tabs-5">
|
|
|
|
</div>
|
|
{if $superadmin}
|
|
{* USER PANE *}
|
|
<div id="tabs-6">
|
|
|
|
<h3>Benutzer</h3>
|
|
<table class='userlist' cellpadding='0' cellspacing='0'>
|
|
<tr><th>Benutzer:</th><th colspan = '2'>Wochenstd.: </th><th>Urlaubstage: </th><th>RFID: </th><th>Zeiterfassung ab: </th><th>Rechte:</th><th></th></tr>
|
|
<tr><th></th><th>Mo-Fr</th><th>Sa</th><th></th><th></th><th></th><th></th></tr>
|
|
{if $superadmin == "add" || $superadmin == "change"}
|
|
{foreach $users as $user}
|
|
{if $user.blocked}
|
|
<tr class='blocked'><td>{$user.nick} ({$user.vname} {$user.nname})</td><td>{$user.weekhours|string_format:"%.1f"}</td><td>{$user.sahours|string_format:"%.1f"}</td><td>{$user.vacationdays|string_format:"%.1f"}</td><td>{$user.rfid}</td><td>{$user.timelog_start}</td><td>{$user.rights}</td><td><a href="?action=useradd&id={$user.id}"><span class="edit" title="Benutzerdaten ändern"></span></a><a href="?action=useradd&id={$user.id}&block=tgl"><span class="deblock" title="Benutzer freigeben"></span></a></td></tr>
|
|
{else}
|
|
<tr><td>{$user.nick} ({$user.vname} {$user.nname})</td>
|
|
<td>{$user.weekhours|string_format:"%.1f"}</td>
|
|
<td>{$user.sahours|string_format:"%.1f"}</td>
|
|
<td>{$user.vacationdays|string_format:"%.1f"}</td>
|
|
<td>{$user.rfid}</td><td>{$user.timelog_start}</td>
|
|
<td>{$user.rights}</td>
|
|
<td><a href="?action=useradd&id={$user.id}"><span class="edit" title="Benutzerdaten ändern"></span></a>
|
|
<a href="?action=useradd&id={$user.id}&block=tgl"><span class="block" title="Benutzer blockieren"></span></a>
|
|
<a href="?action=userkeys&id={$user.id}"><span class="key" title="Passkeys verwalten"></span></a>
|
|
</td></tr>
|
|
{/if}
|
|
{/strip}
|
|
{/foreach}
|
|
{else}
|
|
{foreach $users as $user}
|
|
{strip}
|
|
{if $user.blocked}
|
|
<tr class='blocked'><td>{$user.nick} ({$user.vname} {$user.nname})</td><td>{$user.rights}</td><td></td></tr>
|
|
{else}
|
|
<tr><td>{$user.nick} ({$user.vname} {$user.nname})</td><td>{$user.rights}</td><td></td></tr>
|
|
{/if}
|
|
{/foreach}
|
|
{/if}
|
|
</table>
|
|
{if $superadmin == "add"}
|
|
<br />
|
|
<button type="button" onClick="window.location='?action=useradd';">Neuen Benutzer anlegen</button>
|
|
<br />
|
|
{/if}
|
|
|
|
</div>
|
|
{/if}
|
|
</div>
|
|
<input type="submit">
|
|
</form>
|
|
|
|
</div>
|
|
|
|
<script>
|
|
$(function() {
|
|
$( "#tabs" ).tabs();
|
|
});
|
|
</script>
|
|
<br />
|
|
|
|
|
|
{/if} |