added categories to assetmanagement

This commit is contained in:
Luca Haid
2026-01-19 06:51:56 +01:00
parent 15afb237e1
commit bd0a332aa1
4 changed files with 91 additions and 4 deletions

View File

@@ -8,6 +8,7 @@ class AssetManagementController extends TTCrud
// Simplified columns for better layout, details are in the 'assetDetails' slot
protected array $columns = [
['key' => 'assetDetails', 'text' => 'Gerät', 'modal' => false, 'table' => ['filter' => 'search', 'sortable' => true]],
['key' => 'category', 'text' => 'Kategorie', 'modal' => false, 'table' => ['filter' => 'select', 'filterOptions' => []]],
['key' => 'currentUser', 'text' => 'Status', 'modal' => false, 'table' => ['sortable' => false, 'filter' => false]],
['key' => 'location', 'text' => 'Lagerort', 'required' => true, 'modal' => ['type' => 'text'], 'table' => ['filter' => 'search']],
['key' => 'serviceDueDate', 'text' => 'Service fällig', 'required' => false, 'modal' => ['type' => 'date'], 'table' => ['filter' => 'date']],
@@ -22,6 +23,15 @@ class AssetManagementController extends TTCrud
$this->additionalJSVariables['ASSET_ADMIN'] = '0';
$this->columns = array_filter($this->columns, fn($col) => $col['key'] !== 'actions');
}
$categories = AssetManagementModel::getDistinctCategories();
$categoryOptions = array_map(fn($cat) => ['value' => $cat, 'text' => $cat], $categories);
foreach ($this->columns as &$column) {
if ($column['key'] === 'category') {
$column['table']['filterOptions'] = $categoryOptions;
break;
}
}
}
/**
@@ -282,6 +292,18 @@ class AssetManagementController extends TTCrud
self::returnJson(['success' => true, 'message' => 'Reservierung gelöscht.']);
}
protected function getCategoriesAction()
{
$searchTerm = $this->request->q ?? '';
$categories = AssetManagementModel::getDistinctCategories($searchTerm);
$result = array_map(function($category) {
return ['value' => $category, 'text' => $category];
}, $categories);
self::returnJson($result);
}
protected function printLabelAction() {
if (!$this->user->can('AssetAdmin')) {
self::sendError("Permission denied", 403);