Updated TheTool Frontend Framework & Table

This commit is contained in:
Luca Haid
2024-05-08 12:54:26 +00:00
parent 1e57d983b7
commit 58e124a461
46 changed files with 1364 additions and 2535 deletions

View File

@@ -1,5 +1,4 @@
<?php
class VoiceCallHistoryModel {
public $uid;
public $voice_account;
@@ -18,28 +17,6 @@ class VoiceCallHistoryModel {
}
}
/**
* Generate SQL Filter condition (space separated) for a given column.
*
* @param string|null $filterValue The filter value to match against.
* @param string $columnName The name of the column in the database table.
* @return string The SQL condition generated based on the filter value and column name.
*/
public static function generateFilterCondition(?string $filterValue, string $columnName): string {
$sql = "";
if ($filterValue === "0" || $filterValue === "1") {
$sql .= " AND `$columnName` = " . $filterValue;
} else if (!empty($filterValue)) {
$filterItems = explode(" ", $filterValue);
foreach ($filterItems as $item) {
$sql .= " AND `$columnName` LIKE '%" . $item . "%'";
}
}
return $sql;
}
//TODO: combine these two functions into one
public static function importCallsFromKolmisoft($callHistory): array {
{
@@ -114,22 +91,24 @@ class VoiceCallHistoryModel {
if (isset($filters['start']['from']) && isset($filters['start']['to'])) {
$sql = " AND `start` >= FROM_UNIXTIME(" . $filters['start']['from'] . ") AND `start` <= FROM_UNIXTIME(" . $filters['start']['to'] . ")";
}
$sql .= isset($filters['uid']) ? self::generateFilterCondition($filters['uid'], "uid") : "";
$sql .= isset($filters['voice_account']) ? self::generateFilterCondition($filters['voice_account'], "voice_account") : "";
$sql .= isset($filters['uid']) ? Helper::generateFilterCondition($filters['uid'], "uid") : "";
$sql .= isset($filters['voice_account']) ? Helper::generateFilterCondition($filters['voice_account'], "voice_account") : "";
$sql .= isset($filters['end']) ? " AND `start` <= '" . $filters['end'] . "'" : "";
$sql .= isset($filters['source']) ? self::generateFilterCondition($filters['source'], "source") : "";
$sql .= isset($filters['destination']) ? self::generateFilterCondition($filters['destination'], "destination") : "";
$sql .= isset($filters['billable']) ? self::generateFilterCondition($filters['billable'], "billable") : "";
$sql .= isset($filters['duration']) ? self::generateFilterCondition($filters['duration'], "duration") : "";
$sql .= isset($filters['source']) ? Helper::generateFilterCondition($filters['source'], "source") : "";
$sql .= isset($filters['destination']) ? Helper::generateFilterCondition($filters['destination'], "destination") : "";
$sql .= isset($filters['billable']) ? Helper::generateFilterCondition($filters['billable'], "billable") : "";
$sql .= isset($filters['duration']) ? Helper::generateFilterCondition($filters['duration'], "duration") : "";
return $sql . " ORDER BY `start` DESC";
return $sql;
}
public static function getVoiceCallHistory($filters, $limit = null, $offset = 0): array {
public static function getVoiceCallHistory($filters, $limit = null, $offset = 0, $order = null) {
$db = FronkDB::singleton();
$sql = "SELECT * FROM `VoiceCallHistory` WHERE 1 " . self::getSqlFilter($filters);
$sql .= $order === null || $order['key'] === null ? " ORDER BY `start` DESC" : " ORDER BY `" . $order['key'] . "` " . $order['order'];
$sql .= $limit === null ? "" : " LIMIT " . $limit . " OFFSET " . $offset;
// die($sql);
$result = $db->query($sql);
$rows = [];
while ($row = $result->fetch_assoc()) {