AJAXMethods);
}
/**
* Constructor.
*
* @param string $ajax_controller Controller.
*
* @return object
*/
public function __construct($ajax_controller)
{
$this->ajaxController = $ajax_controller;
return $this;
}
/**
* Main method.
*
* @return void
*/
public function run()
{
ui_require_css_File('discovery');
ui_require_css_file('help_feedback');
$help_url = get_parameter('b', null);
$help_url = base64_decode($help_url);
if ($help_url === null) {
echo __('Page not found');
} else {
?>
';
echo $hidden;
echo '
';
// Load feedback form.
echo $this->loadFeedbackForm();
echo '
';
}
/**
* Loads a feedback form
*
* @return string HTML code for form.
*
* @return Function loadFeedbackForm.
*/
public function loadFeedbackForm()
{
global $config;
$form = [
'action' => '#',
'id' => 'feedback_form',
'onsubmit' => 'return false;',
];
$inputs = [
[
'wrapper' => 'div',
'block_id' => 'flex-row-baseline w100p',
'class' => 'flex-row-baseline w100p',
'direct' => 1,
'block_content' => [
[
'arguments' => [
'label' => __('Suggestion'),
'type' => 'radio_button',
'attributes' => 'class="btn"',
'name' => 'suggestion',
'id' => 'suggestion',
'script' => 'disableRadio(\'report\')',
'return' => true,
],
],
[
'arguments' => [
'label' => __('Something is wrong'),
'type' => 'radio_button',
'attributes' => 'class="btn"',
'name' => 'report',
'id' => 'report',
'script' => 'disableRadio(\'suggestion\')',
'return' => true,
],
],
],
],
[
'label' => __('What happened?'),
'class' => 'explain',
'arguments' => [
'class' => 'textarea_feedback',
'id' => 'feedback_text',
'type' => 'textarea',
'name' => 'feedback_text',
],
],
[
'label' => __('Your Email'),
'arguments' => [
'id' => 'feedback_email',
'name' => 'feedback_email',
'input_class' => 'email_feedback',
'class' => 'email_feedback',
'type' => 'email',
'required' => true,
],
],
[
'arguments' => [
'button_class' => 'btn_submit',
'class' => 'btn_submit',
'attributes' => 'class="sub next btn_submit_feed_back"',
'type' => 'submit',
'id' => 'submit_feedback',
'label' => __('Submit'),
],
],
];
$output = ui_print_toggle(
[
'id' => 'toggle_help_feedback',
'content' => $this->printForm(
[
'form' => $form,
'inputs' => $inputs,
],
true
),
'name' => __('Feedback'),
'return' => true,
'class' => 'no-border',
'img_a' => 'images/arrow_down_white.png',
'img_b' => 'images/arrow_up_white.png',
]
);
$output .= $this->loadJS();
return $output;
}
/**
* Function send_mail_method,we use send_email_attachment method
* from functions_cron.php.
*
* @param string $feedback_option type fo mail.
* @param string $feedback_text text mail.
* @param string $feedback_mail costumer mail.
*
* @return void.
*/
public function sendMailMethod()
{
$suggestion = get_parameter('type', 'false');
$feedback_text = get_parameter('feedback_text', null);
$feedback_mail = get_parameter('feedback_email', null);
$help_url = get_parameter('help_url', 'unknown');
$section = explode('title=', $help_url, 2);
$subject = '';
if (is_array($section) === true && isset($section[1]) === true) {
$subject = '['.$section[1].']';
}
if ($suggestion !== 'false') {
$subject .= __('[pandorafms wiki] New suggestion');
} else {
$subject .= __('[pandorafms wiki] New report');
}
if (empty($feedback_mail) === true) {
$error = [
'error' => __(
'Please provide your email address, we promise not to bother you'
),
];
}
if (empty($feedback_text) === true) {
if ($suggestion !== 'false') {
$msg = 'Please provide some feedback. Write something awesome!';
} else {
$msg = 'Please provide some feedback. We\'ll appreciate it!';
}
$error = [
'error' => __($msg),
];
}
if ($error !== null) {
echo json_encode($error);
exit;
}
enterprise_include_once('include/functions_cron.php');
$uid = $config['pandora_uid'];
if (empty($uid) === true) {
$uid = 'not registered';
}
$body = '- User mail '.$feedback_mail.'
';
$body .= '- Console '.$uid.'
';
$body .= '- URL '.$help_url.'
';
$body .= 'Message
';
$body .= ''.$feedback_text.'
';
$res = enterprise_hook(
'send_email_attachment',
[
'feedback@artica.es',
$body,
$subject,
]
);
// Response.
if ($res == 1) {
$r = ['error' => ''];
} else {
$r = ['error' => __('Something went wrong while sending the report.')];
}
echo json_encode($r);
exit;
}
/**
* Load extra JS.
*
* @return string JS content.
*/
public function loadJS()
{
ob_start();
?>