From 31117bd1cfdf7dee279bac64f4783e9e687681f9 Mon Sep 17 00:00:00 2001 From: "Matthew Wire (MJW Consulting)" <mjw@mjwconsult.co.uk> Date: Mon, 1 Jul 2019 20:50:02 +0100 Subject: [PATCH] Add output links to ManageDataProcessors, fix generation of 'Execute' link if system name has changed --- CRM/Dataprocessor/Form/DataProcessor.php | 16 +++------------- CRM/Dataprocessor/Form/ManageDataProcessors.php | 8 ++++++++ .../Form/DataProcessorBlocks/Outputs.tpl | 2 +- .../Dataprocessor/Form/ManageDataProcessors.tpl | 14 ++++++++++++-- 4 files changed, 24 insertions(+), 16 deletions(-) diff --git a/CRM/Dataprocessor/Form/DataProcessor.php b/CRM/Dataprocessor/Form/DataProcessor.php index bfad9fdb..2f3498ef 100644 --- a/CRM/Dataprocessor/Form/DataProcessor.php +++ b/CRM/Dataprocessor/Form/DataProcessor.php @@ -128,20 +128,10 @@ class CRM_Dataprocessor_Form_DataProcessor extends CRM_Core_Form { $factory = dataprocessor_get_factory(); $types = $factory->getOutputs(); $outputs = civicrm_api3('DataProcessorOutput', 'get', array('data_processor_id' => $this->dataProcessorId, 'options' => array('limit' => 0))); - $outputs = $outputs['values']; + $outputs = CRM_Utils_Array::value('values', $outputs); foreach($outputs as $idx => $output) { - - if (array_key_exists("navigation_id",$output['configuration'])) - { - $navigation_result = civicrm_api3('Navigation', 'get', [ - 'sequential' => 1, - 'return' => ["url"], - 'id' => $output['configuration']['navigation_id'], - ]); - $navigation_url = $navigation_result['values'][0]['url']; - - $outputs[$idx]['navigation_url'] = $navigation_url; - } + $outputs[$idx]['navigation_url'] + = CRM_Utils_System::url("civicrm/dataprocessor_{$output['type']}/{$this->dataProcessor['name']}", 'reset=1'); if (isset($types[$output['type']])) { $outputs[$idx]['type_name'] = $types[$output['type']]; } else { diff --git a/CRM/Dataprocessor/Form/ManageDataProcessors.php b/CRM/Dataprocessor/Form/ManageDataProcessors.php index 5d5c8c7c..c62253e0 100644 --- a/CRM/Dataprocessor/Form/ManageDataProcessors.php +++ b/CRM/Dataprocessor/Form/ManageDataProcessors.php @@ -33,6 +33,14 @@ class CRM_Dataprocessor_Form_ManageDataProcessors extends CRM_Core_Form { foreach($dataProcessors as $idx => $dataProcessor) { $dataProcessors[$idx]['status_label'] = CRM_Dataprocessor_Status::statusToLabel($dataProcessor['status']); + $outputs = civicrm_api3('DataProcessorOutput', 'get',['data_processor_id' => $dataProcessor['id'], 'options' => ['limit' => 0]]); + foreach(CRM_Utils_Array::value('values', $outputs) as $outputIndex => $output) { + $dataProcessors[$idx]['navigation'][$outputIndex] = [ + 'url' => CRM_Utils_System::url("civicrm/dataprocessor_{$output['type']}/{$dataProcessor['name']}", 'reset=1'), + 'title' => $output['configuration']['title'], + ]; + } + } $this->assign('data_processors', $dataProcessors); diff --git a/templates/CRM/Dataprocessor/Form/DataProcessorBlocks/Outputs.tpl b/templates/CRM/Dataprocessor/Form/DataProcessorBlocks/Outputs.tpl index 7e8e0e0d..216b7d9a 100644 --- a/templates/CRM/Dataprocessor/Form/DataProcessorBlocks/Outputs.tpl +++ b/templates/CRM/Dataprocessor/Form/DataProcessorBlocks/Outputs.tpl @@ -17,7 +17,7 @@ <br/> {if isset($output.navigation_url) } - <a href="{crmURL p="`$output.navigation_url`"}">{ts}Execute{/ts}</a> + <a href="{$output.navigation_url}">{ts}Execute{/ts}</a> {/if} </td> </tr> diff --git a/templates/CRM/Dataprocessor/Form/ManageDataProcessors.tpl b/templates/CRM/Dataprocessor/Form/ManageDataProcessors.tpl index 029863ae..e4fe7bf1 100644 --- a/templates/CRM/Dataprocessor/Form/ManageDataProcessors.tpl +++ b/templates/CRM/Dataprocessor/Form/ManageDataProcessors.tpl @@ -63,6 +63,7 @@ <th scope="col" >{ts}Description{/ts}</th> <th scope="col" >{ts}Is active{/ts}</th> <th scope="col" >{ts}Status{/ts}</th> + <th scope="col" >{ts}Outputs{/ts}</th> <th> </th> </tr> </thead> @@ -87,14 +88,23 @@ </span> {/if} </td> + <td class="crm-dataprocessor-navigation"> + {if $data_processor.navigation} + {foreach from=$data_processor.navigation item=navigationItem} + <a href="{$navigationItem.url}" + class="action-item crm-hover-button" title="{$navigationItem.title}">{$navigationItem.title}</a> + {/foreach} + {/if} + </td> <td> - <span> + <span> <a href="{crmURL p='civicrm/dataprocessor/form/edit' q="reset=1&action=update&id=`$data_processor.id`"}" class="action-item crm-hover-button" title="{ts}Edit Data Processor{/ts}">{ts}Edit{/ts}</a> <a href="{crmURL p='civicrm/dataprocessor/form/edit' q="reset=1&action=export&id=`$data_processor.id`"}" class="action-item crm-hover-button" title="{ts}Export Data Processor{/ts}">{ts}Export{/ts}</a> <a href="{crmURL p='civicrm/dataprocessor/form/edit' q="reset=1&action=delete&id=`$data_processor.id`"}" - class="action-item crm-hover-button" title="{ts}Delete Data Processor{/ts}">{ts}Delete{/ts}</a></span> + class="action-item crm-hover-button" title="{ts}Delete Data Processor{/ts}">{ts}Delete{/ts}</a> + </span> </td> </tr> -- GitLab