Spaces:
No application file
No application file
| namespace Mautic\NotificationBundle\Integration; | |
| use Mautic\PluginBundle\Integration\AbstractIntegration; | |
| use Symfony\Component\Form\Extension\Core\Type\ChoiceType; | |
| use Symfony\Component\Form\Extension\Core\Type\TextType; | |
| use Symfony\Component\Form\FormBuilder; | |
| class OneSignalIntegration extends AbstractIntegration | |
| { | |
| protected bool $coreIntegration = true; | |
| public function getName(): string | |
| { | |
| return 'OneSignal'; | |
| } | |
| public function getIcon(): string | |
| { | |
| return 'app/bundles/NotificationBundle/Assets/img/OneSignal.png'; | |
| } | |
| public function getSupportedFeatures(): array | |
| { | |
| return [ | |
| 'mobile', | |
| 'landing_page_enabled', | |
| 'welcome_notification_enabled', | |
| 'tracking_page_enabled', | |
| ]; | |
| } | |
| public function getSupportedFeatureTooltips(): array | |
| { | |
| return [ | |
| 'landing_page_enabled' => 'mautic.integration.form.features.landing_page_enabled.tooltip', | |
| 'tracking_page_enabled' => 'mautic.integration.form.features.tracking_page_enabled.tooltip', | |
| ]; | |
| } | |
| /** | |
| * @return array<string, string> | |
| */ | |
| public function getRequiredKeyFields(): array | |
| { | |
| return [ | |
| 'app_id' => 'mautic.notification.config.form.notification.app_id', | |
| 'safari_web_id' => 'mautic.notification.config.form.notification.safari_web_id', | |
| 'rest_api_key' => 'mautic.notification.config.form.notification.rest_api_key', | |
| 'gcm_sender_id' => 'mautic.notification.config.form.notification.gcm_sender_id', | |
| ]; | |
| } | |
| public function getAuthenticationType(): string | |
| { | |
| return 'none'; | |
| } | |
| /** | |
| * @param \Mautic\PluginBundle\Integration\Form|FormBuilder $builder | |
| * @param array $data | |
| * @param string $formArea | |
| */ | |
| public function appendToForm(&$builder, $data, $formArea): void | |
| { | |
| if ('features' == $formArea) { | |
| /* @var FormBuilder $builder */ | |
| $builder->add( | |
| 'subdomain_name', | |
| TextType::class, | |
| [ | |
| 'label' => 'mautic.notification.form.subdomain_name.label', | |
| 'required' => false, | |
| 'attr' => [ | |
| 'class' => 'form-control', | |
| ], | |
| ] | |
| ); | |
| $builder->add( | |
| 'platforms', | |
| ChoiceType::class, | |
| [ | |
| 'choices' => [ | |
| 'mautic.integration.form.platforms.ios' => 'ios', | |
| 'mautic.integration.form.platforms.android' => 'android', | |
| ], | |
| 'attr' => [ | |
| 'tooltip' => 'mautic.integration.form.platforms.tooltip', | |
| 'data-show-on' => '{"integration_details_supportedFeatures_0":"checked"}', | |
| ], | |
| 'expanded' => true, | |
| 'multiple' => true, | |
| 'label' => 'mautic.integration.form.platforms', | |
| 'placeholder' => false, | |
| 'required' => false, | |
| ] | |
| ); | |
| } | |
| } | |
| } | |