Skip to content
Snippets Groups Projects
Commit 0dbfe10b authored by jaapjansma's avatar jaapjansma
Browse files

Added clone functionality.

parent b253030e
No related branches found
No related tags found
1 merge request!107Added clone functionality.
Version 2.3.3 (not yet released)
============
* Added clone functionality.
Version 2.3.2
============
......
......@@ -68,6 +68,12 @@ class CRM_FormProcessor_Form_Configuration extends CRM_FormProcessor_Form_Abstra
}
$this->assign('outputHandler', $this->outputHandler);
$this->assign('outputConfigurationTitle', E::ts('Output configuration'));
if ($this->_action == CRM_Core_Action::COPY) {
$this->formProcessor['title'] .= ' - ' . E::ts('Copy');
$this->formProcessor['name'] .= '_copy';
$this->formProcessor['name'] = CRM_FormProcessor_BAO_FormProcessorInstance::checkName($this->formProcessor['name']);
$this->assign('form_processor_instance', $this->formProcessor);
}
}
/**
......@@ -239,7 +245,34 @@ class CRM_FormProcessor_Form_Configuration extends CRM_FormProcessor_Form_Abstra
$session = CRM_Core_Session::singleton();
civicrm_api3('FormProcessorInstance', 'revert', array('id' => $this->formProcessorId));
$session->setStatus(E::ts('Form Processor set to imported version'), E::ts('Form Processor Updated'), 'success');
} else {
}
elseif ($this->_action == CRM_Core_Action::COPY) {
$exporter = new \Civi\FormProcessor\Exporter\ExportToJson();
$params = (array) $exporter->export($this->formProcessorId);
$submittedValues = $this->getSubmittedValues();
$params['is_active'] = !empty($submittedValues['is_active']) ? '1' : '0';
$params['title'] = $submittedValues['title'];
if (empty($submittedValues['name'])) {
$result = civicrm_api3('form_processor_instance', 'check_name', [
'title' => $submittedValues['title'],
'id' => $this->formProcessorId
]);
if (!empty($result['name'])) {
$submittedValues['name'] = $result['name'];
}
}
$params['name'] = $submittedValues['name'];
$params['description'] = $submittedValues['description'];
$params['permission'] = $submittedValues['permission'];
$params['output_handler'] = $submittedValues['output_handler'];
if ($this->outputHandlerClass) {
$this->outputHandlerConfig = CRM_FormProcessor_Utils_AddConfigToForm::processConfig($submittedValues, 'output_handler', $this->outputHandlerClass->getConfigurationSpecification());
}
$params['output_handler_configuration'] = $this->outputHandlerConfig;
$result = $exporter->import($params, uniqid().'.json', true);
$this->formProcessorId = $result['new_id'];
}
else {
$submittedValues = $this->getSubmittedValues();
if ($this->formProcessorId) {
$params['id'] = $this->formProcessorId;
......
......@@ -66,6 +66,11 @@ class CRM_FormProcessor_Form_TabHeader {
$tabs = [];
$tabs['configuration']['title'] = E::ts('Define form processor');
if ($form->_action == CRM_Core_Action::ADD) {
$tabs['configuration']['title'] = E::ts('New form processor');
} elseif ($form->_action == CRM_Core_Action::COPY) {
$tabs['configuration']['title'] = E::ts('Clone form processor');
}
$tabs['configuration']['class'] = '';
$tabs['configuration']['active'] = TRUE;
$tabs['configuration']['link'] = NULL;
......@@ -73,48 +78,50 @@ class CRM_FormProcessor_Form_TabHeader {
$tabs['configuration']['current'] = FALSE;
$tabs['configuration']['qfKey'] = $qfKeyAttribute;
if ($formProcessorId) {
$tabs['defaultdataconfiguration']['title'] = E::ts('Retrieval of defaults');
$tabs['defaultdataconfiguration']['class'] = '';
$tabs['defaultdataconfiguration']['link'] = NULL;
$tabs['defaultdataconfiguration']['valid'] = FALSE;
$tabs['defaultdataconfiguration']['current'] = FALSE;
$tabs['defaultdataconfiguration']['active'] = TRUE;
$tabs['defaultdataconfiguration']['qfKey'] = $qfKeyAttribute;
if (!empty($formProcessor['enable_default_data'])) {
$tabs['defaultdataconfiguration']['valid'] = TRUE;
}
if ($form->_action == CRM_Core_Action::UPDATE || $form->_action == CRM_Core_Action::PREVIEW) {
if ($formProcessorId) {
$tabs['defaultdataconfiguration']['title'] = E::ts('Retrieval of defaults');
$tabs['defaultdataconfiguration']['class'] = '';
$tabs['defaultdataconfiguration']['link'] = NULL;
$tabs['defaultdataconfiguration']['valid'] = FALSE;
$tabs['defaultdataconfiguration']['current'] = FALSE;
$tabs['defaultdataconfiguration']['active'] = TRUE;
$tabs['defaultdataconfiguration']['qfKey'] = $qfKeyAttribute;
if (!empty($formProcessor['enable_default_data'])) {
$tabs['defaultdataconfiguration']['valid'] = TRUE;
}
$tabs['validatorconfiguration']['title'] = E::ts('Validation');
$tabs['validatorconfiguration']['class'] = '';
$tabs['validatorconfiguration']['link'] = NULL;
$tabs['validatorconfiguration']['valid'] = FALSE;
$tabs['validatorconfiguration']['current'] = FALSE;
$tabs['validatorconfiguration']['active'] = TRUE;
$tabs['validatorconfiguration']['qfKey'] = $qfKeyAttribute;
$validatorCount = civicrm_api3('FormProcessorValidateValidator', 'getcount', ['form_processor_id' => $formProcessorId]);
if ($validatorCount) {
$tabs['validatorconfiguration']['valid'] = TRUE;
}
$tabs['validatorconfiguration']['title'] = E::ts('Validation');
$tabs['validatorconfiguration']['class'] = '';
$tabs['validatorconfiguration']['link'] = NULL;
$tabs['validatorconfiguration']['valid'] = FALSE;
$tabs['validatorconfiguration']['current'] = FALSE;
$tabs['validatorconfiguration']['active'] = TRUE;
$tabs['validatorconfiguration']['qfKey'] = $qfKeyAttribute;
$validatorCount = civicrm_api3('FormProcessorValidateValidator', 'getcount', ['form_processor_id' => $formProcessorId]);
if ($validatorCount) {
$tabs['validatorconfiguration']['valid'] = TRUE;
}
$tabs['calculationconfiguration']['title'] = E::ts('Calculation');
$tabs['calculationconfiguration']['class'] = '';
$tabs['calculationconfiguration']['link'] = NULL;
$tabs['calculationconfiguration']['valid'] = FALSE;
$tabs['calculationconfiguration']['current'] = FALSE;
$tabs['calculationconfiguration']['active'] = TRUE;
$tabs['calculationconfiguration']['qfKey'] = $qfKeyAttribute;
if (!empty($formProcessor['calculation_output_configuration'])) {
$tabs['calculationconfiguration']['valid'] = TRUE;
}
$tabs['calculationconfiguration']['title'] = E::ts('Calculation');
$tabs['calculationconfiguration']['class'] = '';
$tabs['calculationconfiguration']['link'] = NULL;
$tabs['calculationconfiguration']['valid'] = FALSE;
$tabs['calculationconfiguration']['current'] = FALSE;
$tabs['calculationconfiguration']['active'] = TRUE;
$tabs['calculationconfiguration']['qfKey'] = $qfKeyAttribute;
if (!empty($formProcessor['calculation_output_configuration'])) {
$tabs['calculationconfiguration']['valid'] = TRUE;
}
$tabs['tryout']['title'] = E::ts('Try out');
$tabs['tryout']['class'] = '';
$tabs['tryout']['link'] = CRM_Utils_System::url('civicrm/admin/automation/formprocessor/run', ['_qf_formProcessorName' => $formProcessor['name']]);
$tabs['tryout']['valid'] = TRUE;
$tabs['tryout']['current'] = FALSE;
$tabs['tryout']['active'] = TRUE;
$tabs['tryout']['qfKey'] = $qfKeyAttribute;
$tabs['tryout']['title'] = E::ts('Try out');
$tabs['tryout']['class'] = '';
$tabs['tryout']['link'] = CRM_Utils_System::url('civicrm/admin/automation/formprocessor/run', ['_qf_formProcessorName' => $formProcessor['name']]);
$tabs['tryout']['valid'] = TRUE;
$tabs['tryout']['current'] = FALSE;
$tabs['tryout']['active'] = TRUE;
$tabs['tryout']['qfKey'] = $qfKeyAttribute;
}
}
// see if any other modules want to add any tabs
......
......@@ -165,7 +165,7 @@ return [
],
],
[
'path' => 'civicrm/admin/automation/formprocessor/run?_qf_formProcessorName=[name]',
'path' => 'civicrm/admin/automation/formprocessor/run?action=preview&_qf_formProcessorName=[name]',
'icon' => 'fa-play-circle-o',
'text' => E::ts('Try out'),
'style' => 'success',
......@@ -176,6 +176,18 @@ return [
'join' => '',
'target' => '',
],
[
'path' => 'civicrm/admin/automation/formprocessor/configuration?reset=1&action=copy&id=[id]',
'icon' => 'fa-clone',
'text' => E::ts('Clone Form Processor'),
'style' => 'default',
'condition' => [],
'task' => '',
'entity' => '',
'action' => '',
'join' => '',
'target' => '',
],
[
'path' => 'civicrm/admin/automation/formprocessor/export?reset=1&id=[id]',
'icon' => 'fa-download',
......
......@@ -21,8 +21,15 @@
{include file="CRM/common/formButtons.tpl" location="bottom"}
</div>
{elseif (!$show_only_output_handler_config)}
<h3>{ts}Define Form Processor{/ts}</h3>
{if $action eq 16384}
<h3>{ts}Clone Form Processor{/ts}</h3>
{else}
<h3>{ts}Define Form Processor{/ts}</h3>
{/if}
<div class="crm-block crm-form-block crm-form-processor-configuration-block">
{if $action eq 16384}
<p class="help">{ts}The cloned form processor is not yet saved.{/ts}</p>
{/if}
<div class="crm-section">
<div class="label">{$form.title.label}</div>
<div class="content">{$form.title.html}
......@@ -61,7 +68,7 @@
<div class="content">{$form.output_handler.html}</div>
<div class="clear"></div>
</div>
{if $form_processor_id}
{if $action eq 2}
<h3>{ts}Inputs{/ts}</h3>
<div class="crm-block crm-form-block crm-form-processor-inputs-block">
{include file="CRM/FormProcessor/Form/Blocks/Inputs.tpl"}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment