diff --git a/libraries/default/RequestProcessors/LocalToolRequestProcessor.php b/libraries/default/RequestProcessors/LocalToolRequestProcessor.php
index 55b7b3b..d672eec 100644
--- a/libraries/default/RequestProcessors/LocalToolRequestProcessor.php
+++ b/libraries/default/RequestProcessors/LocalToolRequestProcessor.php
@@ -16,11 +16,13 @@ class LocalToolRequestProcessor extends GenericRequestProcessor
];
protected $processingTemplate = 'LocalTool/GenericRequest';
protected $Broods;
+ protected $LocalTools;
public function __construct($loadFromAction=false)
{
parent::__construct($loadFromAction);
$this->Broods = TableRegistry::getTableLocator()->get('Broods');
+ $this->LocalTools = TableRegistry::getTableLocator()->get('LocalTools');
}
public function create($requestData)
@@ -53,6 +55,19 @@ class LocalToolRequestProcessor extends GenericRequestProcessor
return $brood;
}
+ protected function getConnector($request)
+ {
+ try {
+ $connectorClasses = $this->LocalTools->getConnectorByToolName($request->local_tool_name);
+ if (!empty($connectorClasses)) {
+ $connector = $this->LocalTools->extractMeta($connectorClasses)[0];
+ }
+ } catch (Cake\Http\Exception\NotFoundException $e) {
+ $connector = null;
+ }
+ return $connector;
+ }
+
protected function addBaseValidatorRules($validator)
{
return $validator
@@ -91,6 +106,7 @@ class IncomingConnectionRequestProcessor extends LocalToolRequestProcessor imple
public function getViewVariables($request)
{
$request->brood = $this->getIssuerBrood($request);
+ $request->connector = $this->getConnector($request);
return [
'request' => $request,
'progressStep' => 0,
@@ -144,6 +160,7 @@ class AcceptedRequestProcessor extends LocalToolRequestProcessor implements Gene
public function getViewVariables($request)
{
$request->brood = $this->getIssuerBrood($request);
+ $request->connector = $this->getConnector($request);
return [
'request' => $request,
'progressStep' => 1,
@@ -195,6 +212,7 @@ class DeclinedRequestProcessor extends LocalToolRequestProcessor implements Gene
public function getViewVariables($request)
{
$request->brood = $this->getIssuerBrood($request);
+ $request->connector = $this->getConnector($request);
return [
'request' => $request,
'progressStep' => 1,
diff --git a/libraries/default/RequestProcessors/templates/LocalTool/GenericRequest.php b/libraries/default/RequestProcessors/templates/LocalTool/GenericRequest.php
index 2c60181..42d0d24 100644
--- a/libraries/default/RequestProcessors/templates/LocalTool/GenericRequest.php
+++ b/libraries/default/RequestProcessors/templates/LocalTool/GenericRequest.php
@@ -30,13 +30,21 @@ $progress = $this->Bootstrap->progressTimeline([
$table = $this->Bootstrap->table(['small' => true, 'bordered' => false, 'striped' => false, 'hover' => false], [
'fields' => [
- ['key' => 'data.toolName', 'label' => __('Tool Name')],
+ ['key' => 'connector', 'label' => __('Tool Name'), 'formatter' => function($connector, $row) {
+ return sprintf('%s',
+ $this->Url->build(['controller' => 'localTools', 'action' => 'viewConnector', $connector['name']]),
+ sprintf('%s (v%s)', h($connector['name']), h($connector['connector_version']))
+ );
+ }],
['key' => 'created', 'label' => __('Date'), 'formatter' => function($value, $row) {
return $value->i18nFormat('yyyy-MM-dd HH:mm:ss');
}],
['key' => 'origin', 'label' => __('Origin')],
['key' => 'brood', 'label' => __('Brood'), 'formatter' => function($brood, $row) {
- return sprintf('%s', $this->Url->build(['controller' => 'broods', 'action' => 'view', $brood['id']]), h($brood['name']));
+ return sprintf('%s',
+ $this->Url->build(['controller' => 'broods', 'action' => 'view', $brood['id']]),
+ h($brood['name'])
+ );
}]
],
'items' => [$request->toArray()],
diff --git a/src/Model/Table/LocalToolsTable.php b/src/Model/Table/LocalToolsTable.php
index 9cfc48f..25d124e 100644
--- a/src/Model/Table/LocalToolsTable.php
+++ b/src/Model/Table/LocalToolsTable.php
@@ -73,6 +73,12 @@ class LocalToolsTable extends AppTable
throw new NotFoundException(__('Invalid connector module action requested.'));
}
+ public function getConnectorByToolName($toolName): array
+ {
+ $toolName = sprintf('%sConnector', ucfirst(strtolower($toolName)));
+ return $this->getConnectors($toolName);
+ }
+
public function getConnectors(string $name = null): array
{
$connectors = [];