diff --git a/lib/Froxlor/UI/Listing.php b/lib/Froxlor/UI/Listing.php index 73de5d68..3f411724 100644 --- a/lib/Froxlor/UI/Listing.php +++ b/lib/Froxlor/UI/Listing.php @@ -82,9 +82,11 @@ class Listing // Set all actions for row if (isset($tabellisting['actions'])) { + $actions = self::setLinks($tabellisting['actions'], $item); + $rows[$key]['action'] = [ 'type' => 'actions', - 'data' => $tabellisting['actions'], + 'data' => $actions ]; } } @@ -92,6 +94,31 @@ class Listing return $rows; } + private static function setLinks($actions, array $item) + { + $linker = UI::getLinker(); + + // Check each action for a href + foreach ($actions as $key => $action) { + // Set link if href is an array + if (isset($action['href']) && is_array($action['href'])) { + // Search for "columns" in our href array + foreach ($action['href'] as $href_key => $href_value) { + $length = strlen(':'); + if (substr($href_value, 0, $length) === ':') { + $column = ltrim($href_value, ':'); + $action['href'][$href_key] = $item[$column]; + } + } + + // Set actual link from linker + $actions[$key]['href'] = $linker->getLink($action['href']); + } + } + + return $actions; + } + public static function getVisibleColumnsForListing($listing, $default_columns) { // Hier käme dann die Logik, die das aus der DB zieht ... diff --git a/lib/Froxlor/UI/Panel/UI.php b/lib/Froxlor/UI/Panel/UI.php index 28eaa0a1..9025b610 100644 --- a/lib/Froxlor/UI/Panel/UI.php +++ b/lib/Froxlor/UI/Panel/UI.php @@ -4,6 +4,8 @@ declare(strict_types=1); namespace Froxlor\UI\Panel; +use Froxlor\UI\Linker; + class UI { @@ -217,7 +219,7 @@ class UI self::$linker = $linker; } - public static function getLinker() + public static function getLinker(): Linker { return self::$linker; } diff --git a/lib/tablelisting/admin/tablelisting.admin.php b/lib/tablelisting/admin/tablelisting.admin.php index 2ca091ba..0e737b31 100644 --- a/lib/tablelisting/admin/tablelisting.admin.php +++ b/lib/tablelisting/admin/tablelisting.admin.php @@ -66,11 +66,21 @@ return [ 'actions' => [ 'delete' => [ 'icon' => 'fa fa-trash', - 'href' => '#', + 'href' => [ + 'section' => 'admins', + 'page' => 'admins', + 'action' => 'delete', + 'id' => ':adminid' + ], ], 'edit' => [ 'text' => 'Edit', - 'href' => '#', + 'href' => [ + 'section' => 'admins', + 'page' => 'admins', + 'action' => 'edit', + 'id' => ':adminid' + ], ] ], 'contextual_class' => [ diff --git a/lib/tablelisting/admin/tablelisting.customer.php b/lib/tablelisting/admin/tablelisting.customer.php index 1296e181..cd949337 100644 --- a/lib/tablelisting/admin/tablelisting.customer.php +++ b/lib/tablelisting/admin/tablelisting.customer.php @@ -65,5 +65,25 @@ return [ 'c.diskspace', 'c.traffic', ]), + 'actions' => [ + 'delete' => [ + 'icon' => 'fa fa-trash', + 'href' => [ + 'section' => 'customers', + 'page' => 'customers', + 'action' => 'delete', + 'id' => ':customerid' + ], + ], + 'edit' => [ + 'text' => 'Edit', + 'href' => [ + 'section' => 'customers', + 'page' => 'customers', + 'action' => 'edit', + 'id' => ':customerid' + ], + ] + ], ] ]; diff --git a/lib/tablelisting/admin/tablelisting.domain.php b/lib/tablelisting/admin/tablelisting.domain.php index eabbd9f1..079f44aa 100644 --- a/lib/tablelisting/admin/tablelisting.domain.php +++ b/lib/tablelisting/admin/tablelisting.domain.php @@ -57,11 +57,37 @@ return [ 'actions' => [ 'delete' => [ 'icon' => 'fa fa-trash', - 'href' => '#', + 'href' => [ + 'section' => 'domains', + 'page' => 'domains', + 'action' => 'delete', + 'id' => ':id' + ], ], 'edit' => [ - 'icon' => 'fa fa-edit', - 'href' => '#', + 'text' => 'Edit', + 'href' => [ + 'section' => 'domains', + 'page' => 'domains', + 'action' => 'edit', + 'id' => ':id' + ], + ], + 'logfiles' => [ + 'icon' => 'fa fa-file', + 'href' => [ + 'section' => 'domains', + 'page' => 'logfiles', + 'domain_id' => ':id' + ], + ], + 'domaindnseditor' => [ + 'icon' => 'fa fa-globe', + 'href' => [ + 'section' => 'domains', + 'page' => 'domaindnseditor', + 'domain_id' => ':id' + ], ] ] ] diff --git a/templates/Froxlor/user/dashboard-item.html.twig b/templates/Froxlor/user/dashboard-item.html.twig index 0706f493..835dace1 100644 --- a/templates/Froxlor/user/dashboard-item.html.twig +++ b/templates/Froxlor/user/dashboard-item.html.twig @@ -3,7 +3,7 @@
{{ lng(lngstr) }}
- {% if formatbytes %}{{ used|formatBytes }}{% else %}{{ used }}{% endif %}/{% if available < 0 %}{{ lng('customer.unlimited') }}{% else %}{% if formatbytes %}{{ available|formatBytes }}{% else %}{{ available }}{% endif %}{% endif %} + {% if formatbytes %}{{ used|formatBytes }}{% else %}{{ used }}{% endif %}/{% if available < 0 %}{{ lng('panel.unlimited') }}{% else %}{% if formatbytes %}{{ available|formatBytes }}{% else %}{{ available }}{% endif %}{% endif %}