Transactions: Add filter by username.

This commit is contained in:
fusionate 2020-11-16 15:06:10 -07:00
parent ebcccb9e9d
commit f48d0ade4a
2 changed files with 55 additions and 5 deletions

View File

@ -64,6 +64,27 @@ $text['description-database_transactions']['ru-ru'] = "Изменения в б
$text['description-database_transactions']['sv-se'] = "Databas Transaktioner";
$text['description-database_transactions']['uk-ua'] = "";
$text['label-user']['en-us'] = "User";
$text['label-user']['en-gb'] = "User";
$text['label-user']['ar-eg'] = "";
$text['label-user']['de-at'] = "Benutzer"; //copied from de-de
$text['label-user']['de-ch'] = "Benutzer"; //copied from de-de
$text['label-user']['de-de'] = "Benutzer";
$text['label-user']['es-cl'] = "";
$text['label-user']['es-mx'] = "";
$text['label-user']['fr-ca'] = "Utilisateur";
$text['label-user']['fr-fr'] = "Utilisateur";
$text['label-user']['he-il'] = "";
$text['label-user']['it-it'] = "";
$text['label-user']['nl-nl'] = "Gebruiker";
$text['label-user']['pl-pl'] = "";
$text['label-user']['pt-br'] = "";
$text['label-user']['pt-pt'] = "";
$text['label-user']['ro-ro'] = "";
$text['label-user']['ru-ru'] = "Пользователь";
$text['label-user']['sv-se'] = "Användare";
$text['label-user']['uk-ua'] = "";
$text['label-user_uuid']['en-us'] = "User";
$text['label-user_uuid']['en-gb'] = "User";
$text['label-user_uuid']['ar-eg'] = "";

View File

@ -47,7 +47,8 @@
$order_by = $_GET["order_by"];
$order = $_GET["order"];
//add the search term
//add the user filter and search term
$user_uuid = $_GET['user_uuid'];
$search = strtolower($_GET["search"]);
if ($search != '') {
$sql_search = "and (";
@ -62,10 +63,14 @@
}
//prepare to page the results
$sql = "select count(*) from v_database_transactions as t ";
$sql = "select count(t.database_transaction_uuid) from v_database_transactions as t ";
$sql .= "left outer join v_domains as d using (domain_uuid) ";
$sql .= "left outer join v_users as u using (user_uuid) ";
$sql .= "where t.domain_uuid = :domain_uuid ";
if (is_uuid($user_uuid)) {
$sql .= "and t.user_uuid = :user_uuid ";
$parameters['user_uuid'] = $user_uuid;
}
$sql .= $sql_search;
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$database = new database;
@ -81,12 +86,26 @@
$offset = $rows_per_page * $page;
//get the list
$sql = str_replace('count(*)','t.database_transaction_uuid, d.domain_name, u.username, t.user_uuid, t.app_name, t.app_uuid, t.transaction_code, t.transaction_address, t.transaction_type, t.transaction_date', $sql);
$sql = str_replace('count(t.database_transaction_uuid)','t.database_transaction_uuid, d.domain_name, u.username, t.user_uuid, t.app_name, t.app_uuid, t.transaction_code, t.transaction_address, t.transaction_type, t.transaction_date', $sql);
$sql .= order_by($order_by, $order, 't.transaction_date', 'desc');
$sql .= limit_offset($rows_per_page, $offset);
$database = new database;
$result = $database->select($sql, $parameters, 'all');
unset($sql);
unset($sql, $parameters);
//get users
$sql = "select user_uuid, username from v_users ";
$sql .= "where domain_uuid = :domain_uuid ";
$sql .= "order by username ";
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$database = new database;
$rows = $database->select($sql, $parameters, 'all');
if (is_array($rows) && @sizeof($rows) != 0) {
foreach ($rows as $row) {
$users[$row['user_uuid']] = $row['username'];
}
}
unset($sql, $parameters, $rows, $row);
//additional includes
$document['title'] = $text['title-database_transactions'];
@ -97,9 +116,19 @@
echo " <div class='heading'><b>".$text['title-database_transactions']." (".$num_rows.")</b></div>\n";
echo " <div class='actions'>\n";
echo "<form id='form_search' class='inline' method='get'>\n";
if (is_array($users) && @sizeof($users) != 0) {
echo "<select class='formfld' name='user_uuid' onchange=\"document.getElementById('form_search').submit();\">\n";
echo " <option value=''>".$text['label-user']."...</option>\n";
echo " <option value=''>".$text['label-all']."</option>\n";
foreach ($users as $uuid => $username) {
$selected = $user_uuid == $uuid ? "selected='selected'" : null;
echo " <option value='".escape($uuid)."' ".$selected.">".escape($username)."</option>\n";
}
echo " </select>";
}
echo "<input type='text' class='txt list-search' name='search' id='search' value=\"".escape($search)."\" placeholder=\"".$text['label-search']."\" onkeydown='list_search_reset();'>";
echo button::create(['label'=>$text['button-search'],'icon'=>$_SESSION['theme']['button_icon_search'],'type'=>'submit','id'=>'btn_search','style'=>($search != '' ? 'display: none;' : null)]);
echo button::create(['label'=>$text['button-reset'],'icon'=>$_SESSION['theme']['button_icon_reset'],'type'=>'button','id'=>'btn_reset','link'=>'database_transactions.php','style'=>($search == '' ? 'display: none;' : null)]);
echo button::create(['label'=>$text['button-reset'],'icon'=>$_SESSION['theme']['button_icon_reset'],'type'=>'button','id'=>'btn_reset','onclick'=>"document.getElementById('search').value = ''; document.getElementById('form_search').submit();",'style'=>(!$search ? 'display: none;' : null)]);
if ($paging_controls_mini != '') {
echo "<span style='margin-left: 15px;'>".$paging_controls_mini."</span>";
}