From 1db6723acb3d362f7bc0a5119fa0b1144b272061 Mon Sep 17 00:00:00 2001 From: sarvesh211999 <sarvesh211999@gmail.com> Date: Fri, 5 Jul 2019 21:46:18 +0530 Subject: [PATCH] added import from file --- CRM/Dataprocessor/Form/Import.php | 30 ++++++++++++++++----- templates/CRM/Dataprocessor/Form/Import.tpl | 5 +--- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/CRM/Dataprocessor/Form/Import.php b/CRM/Dataprocessor/Form/Import.php index 54d39d3d..7380d28d 100644 --- a/CRM/Dataprocessor/Form/Import.php +++ b/CRM/Dataprocessor/Form/Import.php @@ -19,7 +19,7 @@ class CRM_Dataprocessor_Form_Import extends CRM_Core_Form { } public function buildQuickForm() { - $this->add('textarea', 'code', E::ts('Import code'), 'rows=30 style="width:100%"', true); + $this->add('file', 'uploadFile', ts('Import Data File'), 'size=30 maxlength=255', TRUE); $this->addButtons(array( array('type' => 'next', 'name' => E::ts('Import'), 'isDefault' => TRUE,), array('type' => 'cancel', 'name' => E::ts('Cancel')) @@ -27,14 +27,30 @@ class CRM_Dataprocessor_Form_Import extends CRM_Core_Form { } public function postProcess() { - $values = $this->exportValues(); - $importCode = json_decode($values['code'], true); - $importResult = CRM_Dataprocessor_Utils_Importer::import($importCode, '', true); + $values = $this->getSubmitValues(True); + // Check for JSON extension required + $filetype = $values['uploadFile']['type']; + if($filetype != 'application/json'){ + CRM_Core_Session::setStatus(E::ts('Imported file should be a json file'), '', 'error'); + $redirectUrl = CRM_Utils_System::url('civicrm/dataprocessor/form/import', array('reset' => 1, 'action' => 'add')); + + parent::preProcess(); + CRM_Utils_System::redirect($redirectUrl); + + + } + else{ - CRM_Core_Session::setStatus(E::ts('Imported data processor'), '', 'success'); + $configuration = file_get_contents($values['uploadFile']['tmp_name']); - $redirectUrl = CRM_Utils_System::url('civicrm/dataprocessor/form/edit', array('reset' => 1, 'action' => 'update', 'id' => $importResult['new_id'])); - CRM_Utils_System::redirect($redirectUrl); + $importCode = json_decode($configuration, true); + $importResult = CRM_Dataprocessor_Utils_Importer::import($importCode, '', true); + + CRM_Core_Session::setStatus(E::ts('Imported data processor'), '', 'success'); + + $redirectUrl = CRM_Utils_System::url('civicrm/dataprocessor/form/edit', array('reset' => 1, 'action' => 'update', 'id' => $importResult['new_id'])); + CRM_Utils_System::redirect($redirectUrl); + } } diff --git a/templates/CRM/Dataprocessor/Form/Import.tpl b/templates/CRM/Dataprocessor/Form/Import.tpl index 19bd5d42..3e83de15 100644 --- a/templates/CRM/Dataprocessor/Form/Import.tpl +++ b/templates/CRM/Dataprocessor/Form/Import.tpl @@ -1,10 +1,7 @@ {crmScope extensionKey='dataprocessor'} {* block for rule data *} <h3>{ts}Import data processor{/ts}</h3> - <div class="crm-block crm-form-block crm-data-processor_source-block"> - <h3>{ts}Code{/ts}</h3> - {$form.code.html} - </div> + <div class="crm-block crm-form-block crm-data-processor_source-block"> {$form.uploadFile.html}</div> <div class="crm-submit-buttons"> {include file="CRM/common/formButtons.tpl" location="bottom"} -- GitLab