* Build the form object.
*/
public function buildQuickForm() {
-
- // FIXME: This is a hack...
- // The tpl contains javascript that starts the import on form submit
- // Since our back/cancel buttons are of html type "submit" we have to prevent a form submit event when they are clicked
- // Hacking in some onclick js to make them act more like links instead of buttons
- $path = CRM_Utils_System::currentPath();
- $query = ['_qf_MapField_display' => 'true'];
- $qfKey = CRM_Utils_Request::retrieve('qfKey', 'String');
- if (CRM_Utils_Rule::qfKey($qfKey)) {
- $query['qfKey'] = $qfKey;
- }
- $previousURL = CRM_Utils_System::url($path, $query, FALSE, NULL, FALSE);
- $cancelURL = CRM_Utils_System::url($path, 'reset=1', FALSE, NULL, FALSE);
-
- $this->addButtons([
- [
- 'type' => 'back',
- 'name' => ts('Previous'),
- 'js' => ['onclick' => "location.href='{$previousURL}'; return false;"],
- ],
- [
- 'type' => 'next',
- 'name' => ts('Import Now'),
- 'spacing' => ' ',
- 'isDefault' => TRUE,
- ],
- [
- 'type' => 'cancel',
- 'name' => ts('Cancel'),
- 'js' => ['onclick' => "location.href='{$cancelURL}'; return false;"],
- ],
- ]);
+ $this->addButtons($this->getButtons());
}
/**
$runner->runAllViaWeb();
}
+ /**
+ * Get the buttons for the form.
+ *
+ * @return array|array[]
+ * @throws \CRM_Core_Exception
+ */
+ private function getButtons(): array {
+ // FIXME: This is a hack...
+ // The tpl contains javascript that starts the import on form submit
+ // Since our back/cancel buttons are of html type "submit" we have to prevent a form submit event when they are clicked
+ // Hacking in some onclick js to make them act more like links instead of buttons
+ $path = CRM_Utils_System::currentPath();
+ $query = ['_qf_MapField_display' => 'true'];
+ $qfKey = CRM_Utils_Request::retrieve('qfKey', 'String');
+ if (CRM_Utils_Rule::qfKey($qfKey)) {
+ $query['qfKey'] = $qfKey;
+ }
+ $previousURL = CRM_Utils_System::url($path, $query, FALSE, NULL, FALSE);
+ $cancelURL = CRM_Utils_System::url($path, 'reset=1', FALSE, NULL, FALSE);
+ $buttons = [
+ [
+ 'type' => 'back',
+ 'name' => ts('Previous'),
+ 'js' => ['onclick' => "location.href='{$previousURL}'; return false;"],
+ ],
+ ];
+ if ($this->hasImportableRows()) {
+ $buttons[] = [
+ 'type' => 'next',
+ 'name' => ts('Import Now'),
+ 'spacing' => ' ',
+ 'isDefault' => TRUE,
+ ];
+ }
+ $buttons[] = [
+ 'type' => 'cancel',
+ 'name' => ts('Cancel'),
+ 'js' => ['onclick' => "location.href='{$cancelURL}'; return false;"],
+ ];
+
+ return $buttons;
+ }
+
}