0
0
mirror of https://github.com/postfixadmin/postfixadmin.git synced 2024-09-19 11:12:15 +02:00

add token "global search" on the frontpage for superadmins to perhaps find some things quickly

This commit is contained in:
David Goodwin 2024-07-23 20:57:39 +01:00
parent b726c7aba8
commit 5f5c52257d
No known key found for this signature in database
2 changed files with 141 additions and 50 deletions

View File

@ -29,6 +29,26 @@ authentication_require_role('admin');
$CONF = Config::getInstance()->getAll(); $CONF = Config::getInstance()->getAll();
$smarty = PFASmarty::getInstance(); $smarty = PFASmarty::getInstance();
$q = safeget('q');
$smarty->assign('q', '');
if (!empty($q)) {
$table_alias = table_by_key('alias');
$table_domain = table_by_key('domain');
$table_mailbox = table_by_key('mailbox');
$mailboxes = db_query_all("SELECT * FROM $table_mailbox WHERE username LIKE :q ORDER BY username ASC LIMIT 15", ['q' => "%$q%"]);
$aliases = db_query_all("SELECT * FROM $table_alias WHERE address LIKE :q ORDER BY address ASC LIMIT 15", ['q' => "%$q%"]);
$domains = db_query_all("SELECT * FROM $table_domain WHERE domain LIKE :q AND domain != 'ALL' ORDER BY domain ASC LIMIT 15", ['q' => "%$q%"]);
$smarty->assign('q', $q);
$smarty->assign('mailboxes', $mailboxes);
$smarty->assign('aliases', $aliases);
$smarty->assign('domains', $domains);
}
$smarty->assign('smarty_template', 'main'); $smarty->assign('smarty_template', 'main');
$smarty->display('index.tpl'); $smarty->display('index.tpl');

View File

@ -1,56 +1,127 @@
<!-- {$smarty.template} --> <!-- {$smarty.template} -->
<div class="panel panel-default" id="main_menu"> <div class="panel panel-default" id="main_menu">
<table class="table"> <section>
<tr> <h2>Global Search</h2>
<td nowrap="nowrap"><a style="text-align:left; padding-left:15px" class="btn btn-primary btn-block" href="{#url_list_domain#}"><span class="glyphicon glyphicon-th-large" <form method=GET class=form action="">
aria-hidden="true"></span> {$PALANG.pMenu_overview}</a></td> <div class="input-group">
<td style="padding-top: 15px;">{$PALANG.pMain_overview}</td> <input type="text" id=q name=q class="form-control" value="{$q}" autofocus="autofocus"
</tr> placeholder="Global search (mailbox, alias ...)"
<tr> aria-label="Global Search">
<td nowrap="nowrap"><a style="text-align:left; padding-left:15px" class="btn btn-primary btn-block" href="{#url_create_alias#}"><span class="glyphicon glyphicon-plus-sign" <span class="input-group-btn">
aria-hidden="true"></span> {$PALANG.add_alias}</a></td> <button class="btn btn-default" type="submit">Search</button>
<td style="padding-top: 15px;">{$PALANG.pMain_create_alias}</td> </span>
</tr> </div>
<tr> </form>
<td nowrap="nowrap"><a style="text-align:left; padding-left:15px" class="btn btn-primary btn-block" href="{#url_create_mailbox#}"><span class="glyphicon glyphicon-inbox"
aria-hidden="true"></span> {$PALANG.add_mailbox}</a></td>
<td style="padding-top: 15px;">{$PALANG.pMain_create_mailbox}</td> {if !empty($domains)}
</tr> <h3>Domains</h3>
{if $CONF.sendmail==='YES'} <ul>
<tr> {foreach from=$domains item=row}
<td nowrap="nowrap"><a style="text-align:left; padding-left:15px" class="btn btn-primary btn-block" href="{#url_sendmail#}"><span class="glyphicon glyphicon-send" <li>Domain: <a
aria-hidden="true"></span> {$PALANG.pMenu_sendmail}</a></td> href="list-virtual.php?domain={$row['domain']|escape:url}">{$row['domain']}</a>
<td style="padding-top: 15px;">{$PALANG.pMain_sendmail}</td> </li>
</tr> {/foreach}
</ul>
{/if} {/if}
{if $CONF.dkim==='YES' && (
$authentication_has_role.global_admin || {if !empty($mailboxes)}
(isset($CONF.dkim_all_admins) && $CONF.dkim_all_admins === 'YES') ) <h3>Mailboxes</h3>
} <ul>
<tr> {foreach from=$mailboxes item=row}
<td nowrap="nowrap"><a style="text-align:left; padding-left:15px" class="btn btn-primary btn-block" href="{#url_dkim#}"><span class="glyphicon glyphicon-certificate" <li>Mailbox: <a
aria-hidden="true"></span> {$PALANG.pMenu_dkim}</a></td> href="edit.php?table=mailbox&edit={$row['username']|escape:url}">{$row['username']}</a>
<td style="padding-top: 15px;">{$PALANG.pMain_dkim}</td> </li>
</tr> {/foreach}
</ul>
{/if} {/if}
<tr>
<td nowrap="nowrap"><a style="text-align:left; padding-left:15px" class="btn btn-primary btn-block" href="{#url_password#}"><span class="glyphicon glyphicon-lock"
aria-hidden="true"></span> {$PALANG.pMenu_password}</a></td> {if !empty($aliases)}
<td style="padding-top: 15px;">{$PALANG.pMain_password}</td> <h3>Aliases</h3>
</tr> <ul>
{* viewlog *} {foreach from=$aliases item=row}
{if $CONF.logging==='YES'} <li>Alias: <a
<tr> href="edit.php?table=alias&edit={$row['address']|escape:url}">{$row['address']}</a>
<td nowrap="nowrap"><a style="text-align:left; padding-left:15px" class="btn btn-primary btn-block" href="{#url_viewlog#}"><span class="glyphicon glyphicon-file" </li>
aria-hidden="true"></span> {$PALANG.pMenu_viewlog}</a></td> {/foreach}
<td style="padding-top: 15px;">{$PALANG.pMain_viewlog}</td> </ul>
</tr> {/if}
{/if} </section>
<tr>
<td style="width: 150px;" nowrap="nowrap"><a style="text-align:left; padding-left:15px" class="btn btn-primary btn-block" href="{#url_logout#}"><span style="padding-left: 5px;"class="glyphicon glyphicon-log-out" <section>
aria-hidden="true"></span> {$PALANG.pMenu_logout}</a></td> <h2>Dashboard</h2>
<td style="padding-top: 15px;">{$PALANG.pMain_logout}</td> <table class="table">
</tr> <tr>
</table> <td nowrap="nowrap"><a style="text-align:left; padding-left:15px" class="btn btn-primary btn-block"
href="{#url_list_domain#}"><span class="glyphicon glyphicon-th-large"
aria-hidden="true"></span> {$PALANG.pMenu_overview}
</a></td>
<td style="padding-top: 15px;">{$PALANG.pMain_overview}</td>
</tr>
<tr>
<td nowrap="nowrap"><a style="text-align:left; padding-left:15px" class="btn btn-primary btn-block"
href="{#url_create_alias#}"><span class="glyphicon glyphicon-plus-sign"
aria-hidden="true"></span> {$PALANG.add_alias}
</a>
</td>
<td style="padding-top: 15px;">{$PALANG.pMain_create_alias}</td>
</tr>
<tr>
<td nowrap="nowrap"><a style="text-align:left; padding-left:15px" class="btn btn-primary btn-block"
href="{#url_create_mailbox#}"><span class="glyphicon glyphicon-inbox"
aria-hidden="true"></span> {$PALANG.add_mailbox}
</a></td>
<td style="padding-top: 15px;">{$PALANG.pMain_create_mailbox}</td>
</tr>
{if $CONF.sendmail==='YES'}
<tr>
<td nowrap="nowrap"><a style="text-align:left; padding-left:15px" class="btn btn-primary btn-block"
href="{#url_sendmail#}"><span class="glyphicon glyphicon-send"
aria-hidden="true"></span> {$PALANG.pMenu_sendmail}
</a></td>
<td style="padding-top: 15px;">{$PALANG.pMain_sendmail}</td>
</tr>
{/if}
{if $CONF.dkim==='YES' && (
$authentication_has_role.global_admin ||
(isset($CONF.dkim_all_admins) && $CONF.dkim_all_admins === 'YES') )
}
<tr>
<td nowrap="nowrap"><a style="text-align:left; padding-left:15px" class="btn btn-primary btn-block"
href="{#url_dkim#}"><span class="glyphicon glyphicon-certificate"
aria-hidden="true"></span> {$PALANG.pMenu_dkim}</a>
</td>
<td style="padding-top: 15px;">{$PALANG.pMain_dkim}</td>
</tr>
{/if}
<tr>
<td nowrap="nowrap"><a style="text-align:left; padding-left:15px" class="btn btn-primary btn-block"
href="{#url_password#}"><span class="glyphicon glyphicon-lock"
aria-hidden="true"></span> {$PALANG.pMenu_password}
</a>
</td>
<td style="padding-top: 15px;">{$PALANG.pMain_password}</td>
</tr>
{* viewlog *}
{if $CONF.logging==='YES'}
<tr>
<td nowrap="nowrap"><a style="text-align:left; padding-left:15px" class="btn btn-primary btn-block"
href="{#url_viewlog#}"><span class="glyphicon glyphicon-file"
aria-hidden="true"></span> {$PALANG.pMenu_viewlog}
</a></td>
<td style="padding-top: 15px;">{$PALANG.pMain_viewlog}</td>
</tr>
{/if}
<tr>
<td style="width: 150px;" nowrap="nowrap"><a style="text-align:left; padding-left:15px"
class="btn btn-primary btn-block"
href="{#url_logout#}"><span
style="padding-left: 5px;" class="glyphicon glyphicon-log-out"
aria-hidden="true"></span> {$PALANG.pMenu_logout}</a></td>
<td style="padding-top: 15px;">{$PALANG.pMain_logout}</td>
</tr>
</table>
</section>
</div> </div>