diff --git a/CRM/Contact/DataProcessorContactSearch.php b/CRM/Contact/DataProcessorContactSearch.php index 2227c2830017d6436d51cb174d93827a41f31da3..1ab18301a9bad9759c67d7b6afadff815c2bde67 100644 --- a/CRM/Contact/DataProcessorContactSearch.php +++ b/CRM/Contact/DataProcessorContactSearch.php @@ -36,7 +36,7 @@ class CRM_Contact_DataProcessorContactSearch implements UIOutputInterface { } $form->add('text', 'title', E::ts('Title'),NULL, true); - + // form elements for adding Dashlet // $output['dashlet'] 1-> Yes 2->No @@ -70,7 +70,7 @@ class CRM_Contact_DataProcessorContactSearch implements UIOutputInterface { $defaults = array(); if ($output) { - + if (isset($output['permission'])) { $defaults['permission'] = $output['permission']; } @@ -103,7 +103,7 @@ class CRM_Contact_DataProcessorContactSearch implements UIOutputInterface { if (empty($defaults['title'])) { $defaults['title'] = civicrm_api3('DataProcessor', 'getvalue', array('id' => $output['data_processor_id'], 'return' => 'title')); } - + $form->setDefaults($defaults); } @@ -136,22 +136,13 @@ class CRM_Contact_DataProcessorContactSearch implements UIOutputInterface { } /** - * Process the submitted values and create a configuration array + * This function is called prior to removing an output * - * @param $submittedValues * @param array $output - * @return array + * @return void */ - public function processDashletConfiguration($submittedValues) { - - $configuration['domain_id'] = 1; - $configuration['name'] = $submittedValues['dashlet_name']; - $configuration['label'] = $submittedValues['dashlet_title']; - $configuration['permission'] = $submittedValues['permission']; - $configuration['is_active'] = $submittedValues['dashlet_active']; - $configuration['cache_minutes'] = 60; - - return $configuration; + public function deleteOutput($output) { + // Do nothing } /** @@ -208,4 +199,4 @@ class CRM_Contact_DataProcessorContactSearch implements UIOutputInterface { $output['permission'] )); } -} \ No newline at end of file +} diff --git a/CRM/Dataprocessor/BAO/DataProcessorOutput.php b/CRM/Dataprocessor/BAO/DataProcessorOutput.php index 4771f0769a6ae97c09bdaf3a2dadd5eac3123724..b502b1ec03305826d795e86ac5559ede033ea7a3 100644 --- a/CRM/Dataprocessor/BAO/DataProcessorOutput.php +++ b/CRM/Dataprocessor/BAO/DataProcessorOutput.php @@ -30,11 +30,16 @@ class CRM_Dataprocessor_BAO_DataProcessorOutput extends CRM_Dataprocessor_DAO_Da * @param $id */ public static function del($id) { + $factory = dataprocessor_get_factory(); CRM_Utils_Hook::pre('delete', 'DataProcessorOutput', $id, CRM_Core_DAO::$_nullArray); $dao = new CRM_Dataprocessor_BAO_DataProcessorOutput(); $dao->id = $id; if ($dao->find(true)) { + $output = array(); + CRM_Core_DAO::storeValues($dao, $output); + $outputTypeClass = $factory->getOutputByName($output['type']); + $outputTypeClass->deleteOutput($output); $dao->delete(); } diff --git a/CRM/Dataprocessor/Form/Output.php b/CRM/Dataprocessor/Form/Output.php index 1fc2c49366a12e861a21298462b728b5e318e3a0..554572666cb286a9b6ccee1588e8d1f4590f5161 100644 --- a/CRM/Dataprocessor/Form/Output.php +++ b/CRM/Dataprocessor/Form/Output.php @@ -13,10 +13,6 @@ class CRM_Dataprocessor_Form_Output extends CRM_Core_Form { private $id; - private $dashlet; - - private $dashlet_id; - private $output; /** @@ -55,26 +51,6 @@ class CRM_Dataprocessor_Form_Output extends CRM_Core_Form { $this->assign('output', $this->output); $this->outputTypeClass = $factory->getOutputByName($this->output['type']); $this->assign('has_configuration', $this->outputTypeClass->hasConfiguration()); - - - // Check for Dashlet - $dashlet_url = $this->createDashletUrl($this->id,$this->dataProcessorId); - try{ - $result_dashlet = civicrm_api3('Dashboard', 'getsingle', [ - 'url' => $dashlet_url, - ]); - $this->dashlet = 1; - $this->dashlet_id = $result_dashlet['id']; - $this->output['dashlet'] = $this->dashlet; - $this->output['dashlet_name'] = $result_dashlet['name']; - $this->output['dashlet_title'] = $result_dashlet['label']; - $this->output['dashlet_active'] = $result_dashlet['is_active']; - } - catch(Exception $e){ - $this->dashlet = 2; - $this->output['dashlet'] = $this->dashlet; - } - } $type = CRM_Utils_Request::retrieve('type', 'String'); @@ -106,7 +82,6 @@ class CRM_Dataprocessor_Form_Output extends CRM_Core_Form { $factory = dataprocessor_get_factory(); $types = array(' - select - ') + $factory->getOutputs(); $this->add('select', 'type', ts('Select output'), $types, true, array('class' => 'crm-select2')); - $this->add('select', 'dashlet', E::ts('Add Output as Dashlet'), array(''=>' - select - ', 1=>'Yes', 2=> 'No'), true,array('id' => 'dashlet')); if ($this->outputTypeClass && $this->outputTypeClass->hasConfiguration()) { $this->outputTypeClass->buildConfigurationForm($this, $this->output); $this->assign('configuration_template', $this->outputTypeClass->getConfigurationTemplateFileName()); @@ -127,9 +102,6 @@ class CRM_Dataprocessor_Form_Output extends CRM_Core_Form { if (isset($this->output['type'])) { $defaults['type'] = $this->output['type']; } - if (isset($this->output['dashlet'])) { - $defaults['dashlet'] = $this->output['dashlet']; - } return $defaults; } @@ -168,41 +140,11 @@ class CRM_Dataprocessor_Form_Output extends CRM_Core_Form { $params['id'] = $this->id; } $params['configuration'] = $this->outputTypeClass->processConfiguration($values, $params); - - $result = civicrm_api3('DataProcessorOutput', 'create', $params); - - if($this->dashlet == 1){ - $dashlet_params = $this->outputTypeClass->processDashletConfiguration($values); - $dashlet_params['url'] = $this->createDashletUrl($result['id'],$this->dataProcessorId); - if ($this->dashlet_id) { - $dashlet_params['id'] = $this->dashlet_id; - } - $dashlet_result = civicrm_api3('Dashboard', 'create', $dashlet_params); - } - elseif($this->dashlet == 2){ - if ($this->dashlet_id) { - $dashlet_params['id'] = $this->dashlet_id; - $dashlet_result = civicrm_api3('Dashboard', 'delete', $dashlet_params); - } - } + $result = civicrm_api3('DataProcessorOutput', 'create', $params); CRM_Utils_System::redirect($redirectUrl); parent::postProcess(); } - /** - * Returns the url for the dashlet url - * - * @param array $outputId - * @param array $dataProcessorId - * @return string - */ - - public function createDashletUrl($outputId,$dataProcessorId){ - $url = CRM_Utils_System::url('civicrm/dataprocessor/form/dashlet', array('outputId' => $outputId, 'dataProcessorId' => $dataProcessorId)); - //substr is used to remove starting slash - return substr($url, 1); - } - } diff --git a/CRM/Dataprocessor/Page/AJAX.php b/CRM/Dataprocessor/Page/AJAX.php index c6521c18338b3d3e0a8de159369bb7fd3d29f0bf..13a21261675f251615f9df124be21058770eb553 100644 --- a/CRM/Dataprocessor/Page/AJAX.php +++ b/CRM/Dataprocessor/Page/AJAX.php @@ -32,6 +32,9 @@ * */ +use Civi\DataProcessor\FieldOutputHandler\FieldOutput; +use Civi\DataProcessor\FieldOutputHandler\Markupable; + /** * This class contains all contact related functions that are called using AJAX (jQuery) */ @@ -39,31 +42,33 @@ class CRM_Dataprocessor_Page_AJAX { public static function getDashlet() { - $outputId = CRM_Utils_Request::retrieve('outputId', 'Integer'); - $dataProcessorId = CRM_Utils_Request::retrieve('dataProcessorId', 'Integer'); - $dataProcessor = civicrm_api3('DataProcessor', 'getsingle', array('id' => $dataProcessorId)); + $dataProcessorName = CRM_Utils_Request::retrieve('dataProcessorName', 'String'); + $dataProcessor = civicrm_api3('DataProcessor', 'getsingle', array('name' => $dataProcessorName)); $dataProcessorClass = CRM_Dataprocessor_BAO_DataProcessor::dataProcessorToClass($dataProcessor); $results = []; try { while($record = $dataProcessorClass->getDataFlow()->nextRecord()) { - $row = array(); - $row['record'] = $record; - $result = array(); - foreach($record as $key => $value) { - $result[$key] = $value->formattedValue; - } - - $results[] = $result; + $row = []; + $row['record'] = $record; + $result = []; + foreach ($record as $key => $value) { + if ($value instanceof Markupable) { + $result[$key] = $value->getMarkupOut(); + } + elseif ($value instanceof FieldOutput) { + $result[$key] = $value->formattedValue; + } } - } - catch (\Civi\DataProcessor\DataFlow\EndOfFlowException $e) { + $results[] = $result; + } + } catch (\Civi\DataProcessor\DataFlow\EndOfFlowException $e) { // Do nothing - } + } $return_output['data'] = $results; - + CRM_Utils_JSON::output($return_output); } diff --git a/CRM/Dataprocessor/Page/Dashlet.php b/CRM/Dataprocessor/Page/Dashlet.php index 9f8cc95b0c17c0e12aeefce5460fdc3dafb91228..d91983378dcb1a107dd86bb340bd3167dd7c826e 100644 --- a/CRM/Dataprocessor/Page/Dashlet.php +++ b/CRM/Dataprocessor/Page/Dashlet.php @@ -7,16 +7,16 @@ use CRM_Dataprocessor_ExtensionUtil as E; * */ class CRM_Dataprocessor_Page_Dashlet extends CRM_Core_Page { - + /** * @var int */ private $outputId; /** - * @var int + * @var String */ - private $dataProcessorId; + private $dataProcessorName; /** * @var array @@ -35,13 +35,11 @@ class CRM_Dataprocessor_Page_Dashlet extends CRM_Core_Page { */ protected function preProcess() { - $this->outputId = CRM_Utils_Request::retrieve('outputId', 'Integer'); - $this->dataProcessorId = CRM_Utils_Request::retrieve('dataProcessorId', 'Integer'); + $this->dataProcessorName = CRM_Utils_Request::retrieve('data_processor', 'String'); - $this->dataProcessor = civicrm_api3('DataProcessor', 'getsingle', array('id' => $this->dataProcessorId)); + $this->dataProcessor = civicrm_api3('DataProcessor', 'getsingle', array('name' => $this->dataProcessorName)); $this->dataProcessorClass = CRM_Dataprocessor_BAO_DataProcessor::dataProcessorToClass($this->dataProcessor); - $this->assign('dataProcessorId', $this->dataProcessorId); - $this->assign('outputId', $this->outputId); + $this->assign('dataProcessorName', $this->dataProcessorName); } /** @@ -69,4 +67,5 @@ class CRM_Dataprocessor_Page_Dashlet extends CRM_Core_Page { } $this->assign('columnHeaders', $columnHeaders); } + } diff --git a/CRM/DataprocessorOutputExport/CSV.php b/CRM/DataprocessorOutputExport/CSV.php index a91d710ee2ad1d6cee44854d3fdfc47a8a403249..7f4cfd7407e82ebd9f7c6ff9caf799bd3b37bb78 100644 --- a/CRM/DataprocessorOutputExport/CSV.php +++ b/CRM/DataprocessorOutputExport/CSV.php @@ -83,6 +83,17 @@ class CRM_DataprocessorOutputExport_CSV implements ExportOutputInterface { return $configuration; } + /** + * This function is called prior to removing an output + * + * @param array $output + * @return void + */ + public function deleteOutput($output) { + // Do nothing + } + + /** * Returns the mime type of the export file. * @@ -273,4 +284,4 @@ class CRM_DataprocessorOutputExport_CSV implements ExportOutputInterface { } -} \ No newline at end of file +} diff --git a/CRM/DataprocessorSearch/ActivitySearch.php b/CRM/DataprocessorSearch/ActivitySearch.php index aa78f8edf2ea011fc3c1e51959a8eb65734ebc95..950deb5c8cfe0fec5687ceb05c313ac341287ae7 100644 --- a/CRM/DataprocessorSearch/ActivitySearch.php +++ b/CRM/DataprocessorSearch/ActivitySearch.php @@ -120,6 +120,16 @@ class CRM_DataprocessorSearch_ActivitySearch implements UIOutputInterface { return $configuration; } + /** + * This function is called prior to removing an output + * + * @param array $output + * @return void + */ + public function deleteOutput($output) { + // Do nothing + } + /** * Returns the url for the page/form this output will show to the user * @@ -175,4 +185,4 @@ class CRM_DataprocessorSearch_ActivitySearch implements UIOutputInterface { )); } -} \ No newline at end of file +} diff --git a/CRM/DataprocessorSearch/CaseSearch.php b/CRM/DataprocessorSearch/CaseSearch.php index 7bd42b42a469bb9be3a4d4e69720e39763a40154..4585fdf462887e803526ef2edeb2626402bbb379 100644 --- a/CRM/DataprocessorSearch/CaseSearch.php +++ b/CRM/DataprocessorSearch/CaseSearch.php @@ -129,6 +129,16 @@ class CRM_DataprocessorSearch_CaseSearch implements UIOutputInterface { return $configuration; } + /** + * This function is called prior to removing an output + * + * @param array $output + * @return void + */ + public function deleteOutput($output) { + // Do nothing + } + /** * Returns the url for the page/form this output will show to the user * @@ -184,4 +194,4 @@ class CRM_DataprocessorSearch_CaseSearch implements UIOutputInterface { )); } -} \ No newline at end of file +} diff --git a/CRM/DataprocessorSearch/ParticipantSearch.php b/CRM/DataprocessorSearch/ParticipantSearch.php index bd71f3b5f959de9d6a3fd2bf2fc6948538c2a823..c198146ccc278ccaad09f22677ae06890341c3a9 100644 --- a/CRM/DataprocessorSearch/ParticipantSearch.php +++ b/CRM/DataprocessorSearch/ParticipantSearch.php @@ -121,6 +121,16 @@ class CRM_DataprocessorSearch_ParticipantSearch implements UIOutputInterface { return $configuration; } + /** + * This function is called prior to removing an output + * + * @param array $output + * @return void + */ + public function deleteOutput($output) { + // Do nothing + } + /** * Returns the url for the page/form this output will show to the user * @@ -176,4 +186,4 @@ class CRM_DataprocessorSearch_ParticipantSearch implements UIOutputInterface { )); } -} \ No newline at end of file +} diff --git a/CRM/DataprocessorSearch/Search.php b/CRM/DataprocessorSearch/Search.php index ac76532489e51152662ef8db5aed69eafee94e10..daac662eb1c390cbfa13de63a62a18ea3c4a2da0 100644 --- a/CRM/DataprocessorSearch/Search.php +++ b/CRM/DataprocessorSearch/Search.php @@ -121,6 +121,16 @@ class CRM_DataprocessorSearch_Search implements UIOutputInterface { return $configuration; } + /** + * This function is called prior to removing an output + * + * @param array $output + * @return void + */ + public function deleteOutput($output) { + // Do nothing + } + /** * Returns the url for the page/form this output will show to the user * @@ -176,4 +186,4 @@ class CRM_DataprocessorSearch_Search implements UIOutputInterface { )); } -} \ No newline at end of file +} diff --git a/Civi/DataProcessor/Factory.php b/Civi/DataProcessor/Factory.php index 24224c87cca101906e282d9562d85c6a2cdf6682..591b751d1dd2ca494cdae0b2a0fe12d575fba851 100644 --- a/Civi/DataProcessor/Factory.php +++ b/Civi/DataProcessor/Factory.php @@ -119,6 +119,7 @@ class Factory { $this->addDataSource('membership_status', 'Civi\DataProcessor\Source\Member\MembershipStatusSource', E::ts('Membership Status')); $this->addDataSource('csv', 'Civi\DataProcessor\Source\CSV', E::ts('CSV File')); $this->addOutput('api', 'Civi\DataProcessor\Output\Api', E::ts('API')); + $this->addOutput('dashlet', 'Civi\DataProcessor\Output\Dashlet', E::ts('Dashlet')); $this->addOutput('search', 'CRM_DataprocessorSearch_Search', E::ts('Search')); $this->addOutput('contact_search', 'CRM_Contact_DataProcessorContactSearch', E::ts('Contact Search')); $this->addOutput('activity_search', 'CRM_DataprocessorSearch_ActivitySearch', E::ts('Activity Search')); @@ -330,4 +331,4 @@ class Factory { return $this->sortCompareFactory; } -} \ No newline at end of file +} diff --git a/Civi/DataProcessor/Output/Api.php b/Civi/DataProcessor/Output/Api.php index c878dc2f0d32c467d838dcb9b936abce274b2742..8b12c1477b05678d6d7262a7f6e00204cc7aadc9 100644 --- a/Civi/DataProcessor/Output/Api.php +++ b/Civi/DataProcessor/Output/Api.php @@ -104,6 +104,16 @@ class Api implements OutputInterface, API_ProviderInterface, EventSubscriberInte return array(); } + /** + * This function is called prior to removing an output + * + * @param array $output + * @return void + */ + public function deleteOutput($output) { + // Do nothing + } + /** * @return array */ @@ -518,4 +528,4 @@ class Api implements OutputInterface, API_ProviderInterface, EventSubscriberInte } -} \ No newline at end of file +} diff --git a/Civi/DataProcessor/Output/Dashlet.php b/Civi/DataProcessor/Output/Dashlet.php new file mode 100644 index 0000000000000000000000000000000000000000..7b5c0146be27869c0e78ccf30d2281ec22178ec3 --- /dev/null +++ b/Civi/DataProcessor/Output/Dashlet.php @@ -0,0 +1,129 @@ +<?php +/** + * @author Jaap Jansma <jaap.jansma@civicoop.org> + * @license AGPL-3.0 + */ + +namespace Civi\DataProcessor\Output; + +use \CRM_Dataprocessor_ExtensionUtil as E; + +class Dashlet implements OutputInterface { + + /** + * Returns true when this output has additional configuration + * + * @return bool + */ + public function hasConfiguration() { + return true; + } + + /** + * When this output type has additional configuration you can add + * the fields on the form with this function. + * + * @param \CRM_Core_Form $form + * @param array $output + */ + public function buildConfigurationForm(\CRM_Core_Form $form, $output = []) { + $form->add('text', 'title', E::ts('Title'), true); + $form->add('select','permission', E::ts('Permission'), \CRM_Core_Permission::basicPermissions(), true, array( + 'style' => 'min-width:250px', + 'class' => 'crm-select2 huge', + 'placeholder' => E::ts('- select -'), + )); + + $defaults = array(); + if ($output) { + if (isset($output['permission'])) { + $defaults['permission'] = $output['permission']; + } + if (isset($output['configuration']) && is_array($output['configuration'])) { + if (isset($output['configuration']['title'])) { + $defaults['title'] = $output['configuration']['title']; + } + } + } + if (!isset($defaults['permission'])) { + $defaults['permission'] = 'access CiviCRM'; + } + if (empty($defaults['title'])) { + $defaults['title'] = civicrm_api3('DataProcessor', 'getvalue', array('id' => $output['data_processor_id'], 'return' => 'title')); + } + $form->setDefaults($defaults); + } + + /** + * When this output type has configuration specify the template file name + * for the configuration form. + * + * @return false|string + */ + public function getConfigurationTemplateFileName() { + return "CRM/Dataprocessor/Form/Output/Dashlet.tpl"; + } + + /** + * Process the submitted values and create a configuration array + * + * @param $submittedValues + * @param array $output + * + * @return array $output + * @throws \Exception + */ + public function processConfiguration($submittedValues, &$output) { + $dataProcessor = civicrm_api3('DataProcessor', 'getsingle', array('id' => $output['data_processor_id'])); + $dashletName = 'dataprocessor_'.$dataProcessor['name']; + $dashletUrl = \CRM_Utils_System::url('civicrm/dataprocessor/form/dashlet', array('data_processor' => $dataProcessor['name'])); + $fullScreenUrl = \CRM_Utils_System::url('civicrm/dataprocessor/form/dashlet', array('data_processor' => $dataProcessor['name'], 'context' => 'dashletFullscreen')); + $dashletParams['url'] = $dashletUrl; + $dashletParams['fullscreen_url'] = $fullScreenUrl; + $dashletParams['name'] = $dashletName; + $dashletParams['label'] = $submittedValues['title']; + $dashletParams['permission'] = $submittedValues['permission']; + $dashletParams['is_active'] = 1; + $dashletParams['cache_minutes'] = 60; + + try { + $id = civicrm_api3('Dashboard', 'getvalue', ['name' => $dashletName, 'return' => 'id']); + if ($id) { + $dashletParams['id'] = $id; + } + } catch (\Exception $e) { + // Do nothing + } + + civicrm_api3('Dashboard', 'create', $dashletParams); + + $output['permission'] = $submittedValues['permission']; + $configuration['title'] = $submittedValues['title']; + return $configuration; + } + + /** + * This function is called prior to removing an output + * + * @param array $output + * @return void + * @throws \Exception + */ + public function deleteOutput($output) { + $dataProcessor = civicrm_api3('DataProcessor', 'getsingle', array('id' => $output['data_processor_id'])); + $dashletName = 'dataprocessor_'.$dataProcessor['name']; + $dashlets = civicrm_api3('Dashboard', 'get', [ + 'name' => $dashletName, + 'options' => ['limit' => 0] + ]); + foreach ($dashlets['values'] as $dashlet) { + try { + civicrm_api3('Dashlet', 'delete', ['id' => $dashlet['id']]); + } catch (\Exception $e) { + // Do nothing + } + } + } + + +} diff --git a/Civi/DataProcessor/Output/OutputInterface.php b/Civi/DataProcessor/Output/OutputInterface.php index 89e871be0377cb10c961c9e1d261d18e8abf54e1..0238b50916c3d9d47719397ee5543e574606658d 100644 --- a/Civi/DataProcessor/Output/OutputInterface.php +++ b/Civi/DataProcessor/Output/OutputInterface.php @@ -42,4 +42,12 @@ interface OutputInterface { */ public function processConfiguration($submittedValues, &$output); -} \ No newline at end of file + /** + * This function is called prior to removing an output + * + * @param array $output + * @return void + */ + public function deleteOutput($output); + +} diff --git a/api/v3/DataProcessorOutput.php b/api/v3/DataProcessorOutput.php index 1cc82abcc299f46b63a331ff434db8df42b8076a..ff25aceaaed3ef1e76cfc6ab7f790d69fb7d5cd3 100644 --- a/api/v3/DataProcessorOutput.php +++ b/api/v3/DataProcessorOutput.php @@ -43,8 +43,9 @@ function civicrm_api3_data_processor_output_create($params) { function civicrm_api3_data_processor_output_delete($params) { $dataProcessorId = civicrm_api3('DataProcessorOutput', 'getvalue', array('id' => $params['id'], 'return' => 'data_processor_id')); CRM_Dataprocessor_BAO_DataProcessor::updateAndChekStatus($dataProcessorId); + $return = _civicrm_api3_basic_delete(_civicrm_api3_get_BAO(__FUNCTION__), $params); CRM_Dataprocessor_Utils_Cache::clearAllDataProcessorCaches(); - return _civicrm_api3_basic_delete(_civicrm_api3_get_BAO(__FUNCTION__), $params); + return $return; } /** diff --git a/templates/CRM/Dataprocessor/Form/Output/Dashlet.tpl b/templates/CRM/Dataprocessor/Form/Output/Dashlet.tpl new file mode 100644 index 0000000000000000000000000000000000000000..56a1a996b4d7cd065568052416b79d578ff26989 --- /dev/null +++ b/templates/CRM/Dataprocessor/Form/Output/Dashlet.tpl @@ -0,0 +1,15 @@ +{crmScope extensionKey='dataprocessor'} + + <div class="crm-section"> + <div class="label">{$form.title.label}</div> + <div class="content">{$form.title.html}</div> + <div class="clear"></div> + </div> + + <div class="crm-section"> + <div class="label">{$form.permission.label}</div> + <div class="content">{$form.permission.html}</div> + <div class="clear"></div> + </div> + +{/crmScope} diff --git a/templates/CRM/Dataprocessor/Page/Dashlet.tpl b/templates/CRM/Dataprocessor/Page/Dashlet.tpl index cb1d82ea21e50a376806a7d530b158decf4342d0..7c359d9da933f1174da69866d551612af51195d9 100644 --- a/templates/CRM/Dataprocessor/Page/Dashlet.tpl +++ b/templates/CRM/Dataprocessor/Page/Dashlet.tpl @@ -1,5 +1,5 @@ <div> - <table class="case-selector"> + <table class="dataprocessor_{$dataProcessorName}"> <thead> <tr> {foreach from=$columnHeaders key=headerName item=headerTitle} @@ -15,15 +15,15 @@ {literal} <script type="text/javascript"> (function($) { -$('table.case-selector').DataTable({ +$('table.dataprocessor_{/literal}{$dataProcessorName}{literal}').DataTable({ "pageLength":5, "order":[], "lengthMenu": [[5, 10, 20], [5, 10, 20]], - "searching": true, + "searching": false, "ajax": { - "url": {/literal}'{crmURL p="civicrm/ajax/getDashlet" q="dataProcessorId=$dataProcessorId&outputId=$outputId"}'{literal}, + "url": {/literal}'{crmURL p="civicrm/ajax/getDashlet" q="dataProcessorName=$dataProcessorName"}'{literal}, } }); })(CRM.$); </script> -{/literal} \ No newline at end of file +{/literal} diff --git a/xml/Menu/dataprocessor.xml b/xml/Menu/dataprocessor.xml index 84e26d4da71768cd4de520a5f713891e4accd4ec..52ca1835c8f8500c2f2aa6690482ccadc9c74763 100644 --- a/xml/Menu/dataprocessor.xml +++ b/xml/Menu/dataprocessor.xml @@ -68,7 +68,6 @@ <page_callback>CRM_Dataprocessor_Page_Dashlet</page_callback> <title>DataProcessor</title> <access_arguments>access CiviCRM</access_arguments> - <access_arguments>administer CiviCRM</access_arguments> </item> <item> <path>civicrm/dataprocessor/form/output/download</path>