Spaces:
No application file
No application file
File size: 2,076 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
<?php
namespace MauticPlugin\MauticSocialBundle\Controller;
use Mautic\CoreBundle\Controller\CommonController;
use Symfony\Component\HttpFoundation\Response;
class JsController extends CommonController
{
public function generateAction($formName): Response
{
$js = <<<JS
function openOAuthWindow(authUrl){
if (authUrl) {
var generator = window.open(authUrl, 'integrationauth', 'height=500,width=500');
if (!generator || generator.closed || typeof generator.closed == 'undefined') {
alert(mauticLang.popupBlockerMessage);
}
}
}
function postAuthCallback(response){
var elements = document.getElementById("mauticform_{$formName}").elements;
var field, fieldName;
values = JSON.parse(JSON.stringify(response));
for (var i = 0, element; element = elements[i++];) {
field = element.name
fieldName = field.replace("mauticform[","");
fieldName = fieldName.replace("]","");
var element = document.getElementsByName("mauticform["+fieldName+"]");
// Remove underscores, dashes, and f_ prefix for comparison
fieldName = fieldName.replace("f_", "").replace(/_/g,"").replace(/-/g, "");
for(var key in values) {
var compareKey = key.replace(/_/g,"").replace(/-/g, "");
if (key != 'id' && (key.indexOf(fieldName) >= 0 || fieldName.indexOf(key) >= 0) && element[0].value == "") {
if (values[key].constructor === Array && values[key][0].value) {
element[0].value = values[key][0].value;
} else {
element[0].value = values[key];
}
break;
}
}
}
}
JS;
return new Response(
$js,
200,
[
'Content-Type' => 'application/javascript',
]
);
}
}
|