Commit fb026905 authored by Vladimir Roudakov's avatar Vladimir Roudakov Committed by Vladimir Roudakov
Browse files

Issue #3275680 by VladimirAus: Add ability to change main text in chat window

parent f3df82ce
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
twilio_flex_account_sid: ''
twilio_flex_flow_sid: ''
twilio_flex_main_header_title: 'Chat with Us'
twilio_flex_msg_canvas_welcome: 'Welcome to customer service'
twilio_flex_msg_canvas_predefined_author: 'Bot'
twilio_flex_msg_canvas_predefined_body: 'Hi there! How can we help you today?'
+12 −0
Original line number Diff line number Diff line
@@ -10,3 +10,15 @@ twilio_flex.settings:
    twilio_flex_flow_sid:
      type: string
      label: 'Flex Flow SID'
    twilio_flex_main_header_title:
      type: string
      label: 'Header title'
    twilio_flex_msg_canvas_welcome:
      type: string
      label: 'Canvas welcome message'
    twilio_flex_msg_canvas_predefined_author:
      type: string
      label: 'First message author'
    twilio_flex_msg_canvas_predefined_body:
      type: string
      label: 'First message body'
+14 −1
Original line number Diff line number Diff line
@@ -2,11 +2,24 @@
  Drupal.behaviors.twilioFlex = {
    attach: function attach(context) {
      const settings = drupalSettings.twilioFlex;
      // See https://assets.flex.twilio.com/docs/releases/flex-webchat-ui/2.5.1/MainHeader.html.
      const appConfig = {
        accountSid: settings.twilio_flex_account_sid,
        flexFlowSid: settings.twilio_flex_flow_sid
        flexFlowSid: settings.twilio_flex_flow_sid,
        componentProps: {
          MainHeader: {
            titleText: settings.twilio_flex_main_header_title
          },
          MessagingCanvas: {
            showWelcomeMessage: true,
            welcomeMessageText: () => settings.twilio_flex_msg_canvas_welcome
          }
        }
      };
      Twilio.FlexWebChat.renderWebChat(appConfig);
      Twilio.FlexWebChat.MessagingCanvas.defaultProps.predefinedMessage.authorName = settings.twilio_flex_msg_canvas_predefined_author;
      Twilio.FlexWebChat.MessagingCanvas.defaultProps.predefinedMessage.body = settings.twilio_flex_msg_canvas_predefined_body;

    }
  };
})(Drupal, drupalSettings);
+37 −1
Original line number Diff line number Diff line
@@ -2,11 +2,11 @@

namespace Drupal\twilio_flex\Form;

use GuzzleHttp\Exception\ClientException;
use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\Core\Form\ConfigFormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Messenger\MessengerInterface;
use GuzzleHttp\Exception\ClientException;
use Psr\Log\LoggerInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;

@@ -106,6 +106,38 @@ class TwilioFlexSettingsForm extends ConfigFormBase {
      '#description' => $this->t('Twilio Flex Flow SID, ie FO...'),
    ];

    $form['twilio_flex_main_header_title'] = [
      '#type' => 'textfield',
      '#title' => $this->t('Header title'),
      '#required' => TRUE,
      '#default_value' => $config->get('twilio_flex_main_header_title'),
      '#description' => $this->t('Header title (default: <em>Chat with Us</em>)'),
    ];

    $form['twilio_flex_msg_canvas_welcome'] = [
      '#type' => 'textfield',
      '#title' => $this->t('Canvas welcome message'),
      '#required' => TRUE,
      '#default_value' => $config->get('twilio_flex_msg_canvas_welcome'),
      '#description' => $this->t('Canvas welcome message (default: <em>Welcome to customer service</em>)'),
    ];

    $form['twilio_flex_msg_canvas_predefined_author'] = [
      '#type' => 'textfield',
      '#title' => $this->t('First message author'),
      '#required' => TRUE,
      '#default_value' => $config->get('twilio_flex_msg_canvas_predefined_author'),
      '#description' => $this->t('First message author (default: <em>Bot</em>)'),
    ];

    $form['twilio_flex_msg_canvas_predefined_body'] = [
      '#type' => 'textfield',
      '#title' => $this->t('First message body'),
      '#required' => TRUE,
      '#default_value' => $config->get('twilio_flex_msg_canvas_predefined_body'),
      '#description' => $this->t('First message body (default: <em>Hi there! How can we help you today?</em>)'),
    ];

    return parent::buildForm($form, $form_state);
  }

@@ -116,6 +148,10 @@ class TwilioFlexSettingsForm extends ConfigFormBase {
    $config = $this->getEditableConfig();
    $config->set('twilio_flex_account_sid', $form_state->getValue('twilio_flex_account_sid'));
    $config->set('twilio_flex_flow_sid', $form_state->getValue('twilio_flex_flow_sid'));
    $config->set('twilio_flex_main_header_title', $form_state->getValue('twilio_flex_main_header_title'));
    $config->set('twilio_flex_msg_canvas_welcome', $form_state->getValue('twilio_flex_msg_canvas_welcome'));
    $config->set('twilio_flex_msg_canvas_predefined_author', $form_state->getValue('twilio_flex_msg_canvas_predefined_author'));
    $config->set('twilio_flex_msg_canvas_predefined_body', $form_state->getValue('twilio_flex_msg_canvas_predefined_body'));
    $config->save();
    parent::submitForm($form, $form_state);

+13 −0
Original line number Diff line number Diff line
@@ -10,3 +10,16 @@
function twilio_flex_uninstall() {
  \Drupal::configFactory()->getEditable('twilio_flex.settings')->delete();
}

/**
 * Set new strings configuration.
 */
function twilio_flex_update_8001() {
  \Drupal::configFactory()
    ->getEditable('twilio_flex.settings')
    ->set('twilio_flex_main_header_title', 'Chat with Us')
    ->set('twilio_flex_msg_canvas_welcome', 'Welcome to customer service')
    ->set('twilio_flex_msg_canvas_predefined_author', 'Bot')
    ->set('twilio_flex_msg_canvas_predefined_body', 'Hi there! How can we help you today?')
    ->save(TRUE);
}
Loading