<?php
namespace App\Controller;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Console\Input\ArrayInput;
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Finder\Finder;
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use App\Entity\Connector;
use App\Entity\ConnectorBlock;
use App\Entity\ConnectorBlockItem;
use App\Entity\Module;
use App\Entity\User;
use App\Entity\UserConnector;
use App\Entity\UserConnectorBlock;
use App\Entity\UserConnectorBlockItem;
use App\Entity\Service;
use Symfony\Contracts\Translation\TranslatorInterface;
class ConnectorController extends DefaultController
{
protected $dynamicEntityManager;
protected ManagerRegistry $doctrine;
protected TranslatorInterface $translator;
public function __construct(ManagerRegistry $doctrine,
TranslatorInterface $translator)
{
$this->doctrine = $doctrine;
$this->translator = $translator;
}
/**
* @Route("/connector", name="connector")
*/
public function indexAction(Request $request)
{
/* we load session data */
parent::init($request);
/* we load entity managers */
$em = $this->doctrine->getManager();
$dem = $this->doctrine->getManager('dynamic_em');
/* we load service to get list of modules */
$service = $em->getRepository(Service::class)->getService(7);
/* we render data */
return $this->render('connector.html.twig',
array('headerData' => $this -> getPageHeader($request),
'moduleList' => $service->getModules(),
'service' => $service,
)
);
}
/**
* @Route("/connectorAdmin", name="connectorAdmin")
*/
public function connectorAdminAction(Request $request)
{
/* we load session data */
parent::init($request);
$session = $request->getSession();
/* we check if an user is logged in */
if(empty($session->get('user'))) {
return $this->redirectToRoute('login');
}
/* we load entity managers */
$em = $this->doctrine->getManager();
$dem = $this->doctrine->getManager('dynamic_em');
/* we get current user */
$currentUserId = $session->get('user')->getUserId();
$user = $em->getRepository(User::class)->getUser($currentUserId);
/* we get paths to user directories */
$userDirs = $this->getUserFolderPathsFromUserId($currentUserId);
/* setting current user connector */
if(!empty($request->query->get('setCurrent'))) {
$userConnector = $em->getRepository(UserConnector::class)->getUserConnector($request->query->get('setCurrent'));
$em->getRepository(UserConnector::class)->setCurrentUserConnector($currentUserId, $request->query->get('setCurrent'));
$session->set('connector', $userConnector);
$this->addFlash('notice', 'The connector '.$userConnector->getUserConnectorName().' was set as current one.');
return $this->redirectToRoute('connectorAdmin');
}
/* we get current connector */
$currentUserConnector = $em->getRepository(UserConnector::class)->getCurrentUserConnector($currentUserId);
/* we load list of connectors for logged user */
$userConnectorList = $em->getRepository(UserConnector::class)->getUserConnectorListByUser($currentUserId);
/* we load service to get list of modules */
$service = $em->getRepository(Service::class)->getService(7);
$logTail = array();
if(!empty($currentUserConnector) && !empty($currentUserConnector->getLogPath()) && $currentUserConnector->getLogPath() != '') {
$logPath = $userDirs['user'].'/'.$currentUserConnector->getLogPath();
/* we create empty log files if it does not exist yet */
if(!is_file($logPath)) {
$pathParts = pathinfo($logPath);
/*
print("\n\n logPath: ");
\Doctrine\Common\Util\Debug::dump($pathParts);
*/
/* we try to create log directory */
if (!@mkdir($pathParts['dirname'], 0777, true)) {
echo('Failed to create folders...');
}
/* we create the log file */
$fh = fopen($logPath, 'w');
}
if (!$handle = fopen($logPath, 'r')) {
echo "Cannot open file ($logPath)";
exit;
}
$logTail = array_reverse($this->readFileTail($logPath, 200));
}
if(!empty($currentUserConnector) && !empty($currentUserConnector->getLogErrorPath()) && $currentUserConnector->getLogErrorPath() != '') {
/* we create empty log error file if it does not exist yet */
$logErrorPath = $userDirs['user'].'/'.$currentUserConnector->getLogErrorPath();
/* we create empty log files if it does not exist yet */
if(!is_file($logErrorPath)) {
$pathParts = pathinfo($logErrorPath);
/*
print("\n\n logPath: ");
\Doctrine\Common\Util\Debug::dump($pathParts);
*/
/* we try to create log directory */
if (!@mkdir($pathParts['dirname'], 0777, true)) {
echo('Failed to create folders...');
}
/* we create the log file */
$fh = fopen($logErrorPath, 'w');
}
if (!$handle = fopen($logErrorPath, 'r')) {
echo "Cannot open file ($logErrorPath)";
exit;
}
if (!$handle = fopen($logErrorPath, 'r')) {
echo "Cannot open file ($logErrorPath)";
exit;
}
}
/* we prepare data for view */
$viewData = array('headerData' => $this -> getPageHeader($request),
'connectorList' => $userConnectorList,
'currentUserConnector' => $currentUserConnector,
'userDirs' => $userDirs,
'logTail' => $logTail,
'user' => $user,
'moduleList' => $service->getModules(),
'userModuleList' => $user->getModules(),
'menu' => $this -> adminMenu($request),
'mainMenu' => $this -> adminMainMenu($request),
);
if(!empty($request->query->get('REST'))) {
return new JsonResponse($viewData);
} else {
/* we render template */
return $this->render('connectorAdmin.html.twig', $viewData);
}
}
/**
* @Route("/connectorConfig", name="connectorConfig")
*/
public function connectorConfigAction(Request $request)
{
/* we load session data */
parent::init($request);
$session = $request->getSession();
// we check if any user is logged in
if(!$this->isLoggedUser($request)) {
return $this->redirectToRoute('login');
}
/* we load master entity manager */
$em = $this->doctrine->getManager();
$dem = $this->doctrine->getManager('dynamic_em');
$currentUserId = $session->get('user')->getUserId();
$user = $em->getRepository(User::class)->getUser($currentUserId);
/* we get current user connector */
$userConnector = $em->getRepository(UserConnector::class)->getCurrentUserConnector($currentUserId);
/*
print('<br>qqw user exists: ');
\Doctrine\Common\Util\Debug::dump($userConnector);
*/
/* we get connector list */
$connectorCollection = $em->getRepository(Connector::class)->getConnectorList();
/* we build form */
$formBuilder = $this->createFormBuilder($userConnector);
$formBuilder->add('userConnectorName', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.name'),
'attr' => array('class' => 'text_form', 'size' => 35, 'value' => $userConnector->getUserConnectorName()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('userConnectorCode', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.code'),
'attr' => array('class' => 'text_form', 'size' => 35, 'value' => $userConnector->getUserConnectorCode()),
'label_attr' => array('class' => 'form_field_label')
));
/* we add connector list */
$connectors = array();
$selectedConnector = null;
foreach($connectorCollection as $conn)
{
$connId = $conn->getConnectorId();
$connectors[$conn->getConnectorName()] = $connId;
if(!empty($userConnector->getConnector()) && $connId == $userConnector->getConnector()->getConnectorId()) {
$selectedConnector = $connId;
}
}
$formBuilder->add('connectorId', ChoiceType::class, array(
'choices' => $connectors,
'mapped' => false,
'label' => $this->translator->trans('connector.type'),
'attr' => array('class' => 'selector'),
'label_attr' => array('class' => 'form_field_label'),
'data' => $selectedConnector
));
$formBuilder->add('configPath', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.config_path'),
'attr' => array('class' => 'text_form', 'size' => 35, 'value' => $userConnector->getConfigPath()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('targetDatabaseHost', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.target_db_host'),
'attr' => array('class' => 'text_form', 'size' => 35, 'value' => $userConnector->getTargetDatabaseHost()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('targetDatabaseName', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.target_db_name'),
'attr' => array('class' => 'text_form', 'size' => 35, 'value' => $userConnector->getTargetDatabaseName()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('targetDatabaseUser', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.target_db_username'),
'attr' => array('class' => 'text_form', 'size' => 35, 'value' => $userConnector->getTargetDatabaseUser()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('targetDatabasePassword', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.target_db_password'),
'attr' => array('class' => 'text_form', 'size' => 35, 'value' => $userConnector->getTargetDatabasePassword()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('targetURL', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.target_url'),
'attr' => array('class' => 'text_form', 'size' => 50, 'value' => $userConnector->getTargetURL()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('logPath', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.log_path'),
'attr' => array('class' => 'text_form', 'size' => 50, 'value' => $userConnector->getLogPath()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('logErrorPath', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.log_error_path'),
'attr' => array('class' => 'text_form', 'size' => 50, 'value' => $userConnector->getLogErrorPath()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('logImportPath', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.log_import_path'),
'attr' => array('class' => 'text_form', 'size' => 50, 'value' => $userConnector->getLogImportPath()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('logExportPath', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.log_export_path'),
'attr' => array('class' => 'text_form', 'size' => 50, 'value' => $userConnector->getLogExportPath()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('fileImportPath', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.file_import_path'),
'attr' => array('class' => 'text_form', 'size' => 35, 'value' => $userConnector->getFileImportPath()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('fileExportPath', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.file_export_path'),
'attr' => array('class' => 'text_form', 'size' => 35, 'value' => $userConnector->getFileExportPath()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('save', SubmitType::class, array('label' => $this->translator->trans('form.button.save'),
'attr' => array('class' => 'butt_big')));
$form = $formBuilder->getForm();
$form->handleRequest($request);
/* we handle the form request */
if ($request->getMethod() == 'POST') {
//$form->bindRequest($request);
if ($form->isValid()) {
$formData = $form->getData();
/* we load data from form into object */
$userConnector->setUserConnectorName($formData->getUserConnectorName());
$userConnector->setUserConnectorCode($formData->getUserConnectorCode());
$userConnector->setConfigPath($formData->getConfigPath());
$userConnector->setTargetDatabaseHost($formData->getTargetDatabaseHost());
$userConnector->setTargetDatabaseName($formData->getTargetDatabaseName());
$userConnector->setTargetDatabaseUser($formData->getTargetDatabaseUser());
$userConnector->setTargetDatabasePassword($formData->getTargetDatabasePassword());
$userConnector->setTargetURL($formData->getTargetURL());
$userConnector->setLogPath($formData->getLogPath());
$userConnector->setLogImportPath($formData->getLogImportPath());
$userConnector->setLogExportPath($formData->getLogExportPath());
$userConnector->setLogErrorPath($formData->getLogErrorPath());
$userConnector->setFileImportPath($formData->getFileImportPath());
$userConnector->setFileExportPath($formData->getFileExportPath());
/* we load connector */
$connector = $em->getRepository(Connector::class)->getConnector($form['connectorId']->getData());
$userConnector->setConnector($connector);
/*
print('<br>qqw user exists: ');
\Doctrine\Common\Util\Debug::dump($user);
*/
/* we persist and save user */
$em->persist($userConnector);
$em->flush();
$this->addFlash('notice', 'Connector was updated.');
return $this->redirectToRoute('connectorConfig');
}
}
/* we render data */
return $this->render('connectorConfig.html.twig',
array( 'headerData' => $this -> getPageHeader($request),
'form' => $formBuilder->getForm()->createView(),
'userConnector' => $userConnector,
'user' => $user,
'menu' => $this -> adminMenu($request),
'mainMenu' => $this -> adminMainMenu($request),
)
);
}
/**
* @Route("/connectorLog", name="connectorLog")
*/
public function connectorLogAction(Request $request)
{
/* we load session data */
parent::init($request);
$session = $request->getSession();
/* we check if an user is logged in */
if(empty($session->get('user'))) {
return $this->redirectToRoute('login');
}
/* we load master entity manager */
$em = $this->doctrine->getManager();
$dem = $this->doctrine->getManager('dynamic_em');
$currentUserId = $session->get('user')->getUserId();
/* we get current user connector */
$userConnector = $em->getRepository(UserConnector::class)->getCurrentUserConnector($currentUserId);
/* we get paths to user directories */
$userDirs = $this->getUserFolderPathsFromUserId($currentUserId);
/*
print('<br>qqw user directories: ');
\Doctrine\Common\Util\Debug::dump($userDirs);
*/
/* we display standard log */
/*
if(!empty($userConnector->getLogPath()) && $userConnector->getLogPath() != '') {
print('<br>qqw logPath: '.$userConnector->getLogPath());
}
*/
/* we display import log */
$importLogFinder = new Finder();
if(!empty($userConnector->getLogImportPath()) && $userConnector->getLogImportPath() != '') {
$importLogDir = $userDirs['user'].'/'.$userConnector->getLogImportPath();
$importLogFinder->files()->in($importLogDir)->sort(
function ($a, $b) {
return ($b->getMTime() - $a->getMTime());
}
);
}
/* we display export log */
$exportLogFinder = new Finder();
if(!empty($userConnector->getLogExportPath()) && $userConnector->getLogExportPath() != '') {
$exportLogDir = $userDirs['user'].'/'.$userConnector->getLogExportPath();
$exportLogFinder->files()->in($exportLogDir)->sort(
function ($a, $b) {
return ($b->getMTime() - $a->getMTime());
}
);
}
/* connector logs */
$logFinder = new Finder();
$logDir = '';
if(!empty($userConnector->getLogPath()) && $userConnector->getLogPath() != '') {
$pathParts = pathinfo($userDirs['user'].'/'.$userConnector->getLogPath());
$logDir = $pathParts['dirname'];
$logFinder->files()->in($logDir)->sort(
function ($a, $b) {
return ($b->getMTime() - $a->getMTime());
}
);
}
/* error logs */
$errorLogFinder = new Finder();
if(!empty($userConnector->getLogErrorPath()) && $userConnector->getLogErrorPath() != '') {
$pathParts = pathinfo($userDirs['user'].'/'.$userConnector->getLogErrorPath());
$errorLogDir = $pathParts['dirname'];
if($logDir == $errorLogDir) {
$errorLogFinder = null;
} else {
$errorLogFinder->files()->in($logDir)->sort(
function ($a, $b) {
return ($b->getMTime() - $a->getMTime());
}
);
}
}
/* we render data */
return $this->render('connectorLog.html.php',
array( 'headerData' => $this -> getPageHeader($request),
'importLogFinder' => $importLogFinder,
'exportLogFinder' => $exportLogFinder,
'logFinder' => $logFinder,
'errorLogFinder' => $errorLogFinder,
'userDirs' => $userDirs,
'userConnector' => $userConnector,
'menu' => $this -> adminMenu($request),
'mainMenu' => $this -> adminMainMenu($request),
)
);
}
/**
* @Route("/connectornew", name="connectorNew")
*/
public function connectorNewAction(Request $request)
{
/* we load session data */
parent::init($request);
$session = $request->getSession();
/* we load entity managers */
$em = $this->doctrine->getManager();
$dem = $this->doctrine->getManager('dynamic_em');
$userId = $session->get('user')->getUserId();
$user = $em->getRepository(User::class)->getUser($userId);
/* we get connector list */
$connectorCollection = $em->getRepository(Connector::class)->getConnectorList();
/* we build form */
$userConnector = new UserConnector;
$formBuilder = $this->createFormBuilder($userConnector);
$formBuilder->add('userConnectorName', TextType::class, array(
'required' => true,
'label' => $this->translator->trans('connector.name'),
'attr' => array('class' => 'text_form', 'size' => 22),
'label_attr' => array('class' => 'form_field_label'),
));
$formBuilder->add('userConnectorCode', TextType::class, array(
'required' => true,
'label' => $this->translator->trans('connector.code'),
'attr' => array('class' => 'text_form', 'size' => 22),
'label_attr' => array('class' => 'form_field_label'),
));
/* we add connector list */
$connectors = array();
foreach($connectorCollection as $conn)
{
$connId = $conn->getConnectorId();
$connectors[$conn->getConnectorName()] = $connId;
}
$formBuilder->add('connectorId', ChoiceType::class, array(
'choices' => $connectors,
'mapped' => false,
'label' => $this->translator->trans('connector.type'),
'attr' => array('class' => 'selector'),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('save', SubmitType::class, array('label' => $this->translator->trans('form.button.save'),
'attr' => array('class' => 'butt_big')));
$form = $formBuilder->getForm();
$form->handleRequest($request);
if ($request->getMethod() == 'POST') {
if ($form->isValid()) {
$formData = $form->getData();
/* we load users entity manager */
//$dem = $this->doctrine->getManager('dynamic_em');
$userConnector->setUserConnectorName($formData->getUserConnectorName());
$userConnector->setUserConnectorCode($formData->getUserConnectorCode());
$userConnector->setUserId($session->get('user')->getUserId());
/* we set connector */
$connector = $em->getRepository(Connector::class)->getConnector($form['connectorId']->getData());
$userConnector->setConnector($connector);
/* we set this connector as current one */
$em->getRepository(UserConnector::class)->unsetCurrentUserConnector($session->get('user')->getUserId());
$userConnector->setUserConnectorCurrent(true);
/* we persist and save */
$em->persist($userConnector);
$em->flush();
$this->addFlash('notice', 'New connector was created.');
return $this->redirectToRoute('connectorAdmin');
}
}
/* we render data */
return $this->render('connectorNew.html.twig',
array( 'form' => $formBuilder->getForm()->createView(),
'headerData' => $this -> getPageHeader($request),
'user' => $user,
'menu' => $this -> adminMenu($request),
'mainMenu' => $this -> adminMainMenu($request),
)
);
}
/**
* @Route("/userConnectorBlockEdit/{connectorBlockId}", name="userConnectorBlockEdit")
*/
public function userConnectorBlockEditAction(Request $request, $connectorBlockId)
{
/* we load session data */
parent::init($request);
$session = $request->getSession();
/* we load entity managers */
$em = $this->doctrine->getManager();
$dem = $this->doctrine->getManager('dynamic_em');
$currentUserId = $session->get('user')->getUserId();
$user = $session->get('user');
/* we get current user connector */
$userConnector = $em->getRepository(UserConnector::class)->getCurrentUserConnector($currentUserId);
$connector = $em->getRepository(Connector::class)->getConnector($userConnector->getConnector()->getConnectorId());
/* we get connector */
$connector = $em->getRepository(Connector::class)->getConnector($userConnector->getConnector()->getConnectorId());
/*
print('<br>userConnector: ');
\Doctrine\Common\Util\Debug::dump($userConnector);
print('<hr>connector: ');
\Doctrine\Common\Util\Debug::dump($userConnector->getConnector());
*/
/* we get connector block */
$connectorBlock = $em->getRepository(ConnectorBlock::class)->getConnectorBlock($connectorBlockId);
/* we get user connector block */
$userConnectorBlock = $dem->getRepository(UserConnectorBlock::class)->getUserBlock($connectorBlockId, $userConnector->getUserConnectorId());
if(empty($userConnectorBlock)) {
//print('<br>qqw creating userConnectorBlock');
$userConnectorBlock = new UserConnectorBlock;
$userConnectorBlock->setUserConnectorBlockName($connectorBlock->getConnectorBlockName());
$userConnectorBlock->setConnectorBlockId($connectorBlockId);
$userConnectorBlock->setUserConnectorId($userConnector->getUserConnectorId());
$dem->persist($userConnectorBlock);
$dem->flush();
}
/* we build edit form */
$formBuilder = $this->createFormBuilder($userConnectorBlock);
$formBuilder->add('isActive', ChoiceType::class, array(
'choices' => array('Yes' => true, 'No' => false),
'required' => false,
'mapped' => false,
'multiple' => false,
'expanded' => true,
'placeholder' => false,
'label' => $this->translator->trans('connector.active'),
'label_attr' => array('class' => 'form_field_label'),
'attr' => array('class' => 'form_field_text'),
'data' => $userConnectorBlock->isIsActive(),
));
$formBuilder->add('userConnectorBlockName', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.user_connector_block_name'),
'attr' => array('class' => 'text_form', 'size' => 33, 'value' => $userConnectorBlock->getUserConnectorBlockName()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('priority', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.priority'),
'attr' => array('class' => 'text_form', 'size' => 11, 'value' => $userConnectorBlock->getPriority()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('periodMinutes', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.period'),
'attr' => array('class' => 'text_form', 'size' => 11, 'value' => $userConnectorBlock->getPeriodMinutes()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('save', SubmitType::class, array('label' => $this->translator->trans('form.button.save'),
'attr' => array('class' => 'butt_big')));
$form = $formBuilder->getForm();
$form->handleRequest($request);
if ($request->getMethod() == 'POST') {
//$form->bindRequest($request);
if ($form->isValid()) {
$formData = $form->getData();
if(!empty($form['isActive']->getData())) {
$userConnectorBlock->setIsActive($form['isActive']->getData());
}
$userConnectorBlock->setUserConnectorBlockName($formData->getUserConnectorBlockName());
$userConnectorBlock->setPriority($formData->getPriority());
$userConnectorBlock->setPeriodMinutes($formData->getPeriodMinutes());
/* we persist and save */
$dem->persist($userConnectorBlock);
$dem->flush();
$this->addFlash('notice', 'User Connector Block was updated.');
return $this->redirectToRoute($connector->getConnectorControllerPath());
}
}
//isModule JenkinsBridge
$module = $em->getRepository(Module::class)->getModule(38);
$createJenkinsModule = false;
$isJenkinsModule = $em->getRepository(User::class)->userHasModule($user, $module);
if($isJenkinsModule) {
/* createJenkinsProcess */
if(!empty($request->query->get('createJenkinsProcess')) && $request->query->get('createJenkinsProcess') == 1) {
print("@TODO - createJenkinsProcess");
$createJenkinsModule = true;
}
}
/* we render data */
return $this->render('userConnectorBlockEdit.html.twig',
array('headerData' => $this -> getPageHeader($request),
'user' => $user,
'connector' => $connector,
'userConnector' => $userConnector,
'connectorBlock' => $connectorBlock,
'userConnectorBlock' => $userConnectorBlock,
'createJenkinsModule' => $createJenkinsModule,
'form' => $formBuilder->getForm()->createView(),
'menu' => $this -> adminMenu($request),
'mainMenu' => $this -> adminMainMenu($request),
)
);
}
/**
* @Route("/userConnectorBlockItemEdit/{connectorBlockItemId}", name="userConnectorBlockItemEdit")
*/
public function userConnectorBlockItemEditAction(Request $request, $connectorBlockItemId)
{
/* we load session data */
parent::init($request);
$session = $request->getSession();
/* we load entity managers */
$em = $this->doctrine->getManager();
$dem = $this->doctrine->getManager('dynamic_em');
$currentUserId = $session->get('user')->getUserId();
$user = $em->getRepository(User::class)->getUser($currentUserId);
/* we get current user connector */
$userConnector = $em->getRepository(UserConnector::class)->getCurrentUserConnector($currentUserId);
$connector = $em->getRepository(Connector::class)->getConnector($userConnector->getConnector()->getConnectorId());
/* we get connector block item */
$connectorBlockItem= $em->getRepository(ConnectorBlockItem::class)->getConnectorBlockItem($connectorBlockItemId);
/* we get user connector block item */
$userConnectorBlockItem= $dem->getRepository(UserConnectorBlockItem::class)->getUserBlockItem($connectorBlockItemId, $userConnector->getUserConnectorId());
if(empty($userConnectorBlockItem)) {
//print('<br>qqw creating userConnectorBlock');
$userConnectorBlockItem= new UserConnectorBlockItem;
$userConnectorBlockItem->setUserConnectorBlockItemName($connectorBlockItem->getConnectorBlockItemName());
$userConnectorBlockItem->setConnectorBlockItemId($connectorBlockItemId);
//$userConnectorBlockItem->setConnectorBlockItem($connectorBlockItem);
$userConnectorBlockItem->setUserConnectorId($userConnector->getUserConnectorId());
//print('<br>qqw persisting dem: '.$userConnectorBlockItem->getConnectorBlockItemId());
$dem->persist($userConnectorBlockItem);
//$dem->persist($userConnectorBlockItem->getConnectorBlockItem());
$dem->flush();
//$dem->clear();
}
/* we build edit form */
$formBuilder = $this->createFormBuilder($userConnectorBlockItem);
$formBuilder->add('isActive', ChoiceType::class, array(
'choices' => array('Yes' => true, 'No' => false),
'required' => false,
'mapped' => false,
'multiple' => false,
'expanded' => true,
'placeholder' => false,
'label' => $this->translator->trans('connector.active'),
'label_attr' => array('class' => 'form_field_label'),
'attr' => array('class' => 'form_field_text'),
'data' => $userConnectorBlockItem->isIsActive(),
));
$formBuilder->add('userConnectorBlockItemName', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.user_connector_block_name'),
'attr' => array('class' => 'text_form', 'size' => 33, 'value' => $userConnectorBlockItem->getUserConnectorBlockItemName()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('sourceUrl', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.connector_block_item_source'),
'attr' => array('class' => 'text_form', 'size' => 55, 'value' => $userConnectorBlockItem->getSourceUrl()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('transformerUrl', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.connector_block_item_transformer'),
'attr' => array('class' => 'text_form', 'size' => 55, 'value' => $userConnectorBlockItem->getTransformerUrl()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('targetUrl', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.connector_block_item_target'),
'attr' => array('class' => 'text_form', 'size' => 55, 'value' => $userConnectorBlockItem->getTargetUrl()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('priority', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.priority'),
'attr' => array('class' => 'text_form', 'size' => 11, 'value' => $userConnectorBlockItem->getPriority()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('periodMinutes', TextType::class, array(
'required' => false,
'label' => $this->translator->trans('connector.period'),
'attr' => array('class' => 'text_form', 'size' => 11, 'value' => $userConnectorBlockItem->getPeriodMinutes()),
'label_attr' => array('class' => 'form_field_label')
));
$formBuilder->add('save', SubmitType::class, array('label' => $this->translator->trans('form.button.save'),
'attr' => array('class' => 'butt_big')));
$form = $formBuilder->getForm();
$form->handleRequest($request);
if ($request->getMethod() == 'POST') {
//$form->bindRequest($request);
if ($form->isValid()) {
$formData = $form->getData();
if(!empty($form['isActive']->getData())) {
$userConnectorBlockItem->setIsActive($form['isActive']->getData());
}
$userConnectorBlockItem->setUserConnectorBlockItemName($formData->getUserConnectorBlockItemName());
$userConnectorBlockItem->setSourceUrl($formData->getSourceUrl());
$userConnectorBlockItem->setTransformerUrl($formData->getTransformerUrl());
$userConnectorBlockItem->setTargetUrl($formData->getTargetUrl());
$userConnectorBlockItem->setPriority($formData->getPriority());
$userConnectorBlockItem->setPeriodMinutes($formData->getPeriodMinutes());
/* we persist and save */
$dem->persist($userConnectorBlockItem);
$dem->flush();
$this->addFlash('notice', 'User Connector Block Item was updated.');
return $this->redirectToRoute($connector->getConnectorControllerPath());
}
}
/* we render data */
return $this->render('userConnectorBlockItemEdit.html.twig',
array('headerData' => $this -> getPageHeader($request),
'connector' => $connector,
'userConnector' => $userConnector,
'connectorBlockItem' => $connectorBlockItem,
'userConnectorBlockItem' => $userConnectorBlockItem,
'user' => $user,
'form' => $formBuilder->getForm()->createView(),
'menu' => $this -> adminMenu($request),
'mainMenu' => $this -> adminMainMenu($request),
)
);
}
public function adminMenu(Request $request)
{
$menuItems = array(0 => array('link' => 'homeuser', 'langKey' => 'user.admin', 'routeName' => 'homeuser'),
1 => array('link' => 'connectorAdmin', 'langKey' => 'connector.admin', 'routeName' => 'connectorAdmin'),
2 => array('link' => 'connectorLog', 'langKey' => 'connector.logs', 'routeName' => 'connectorLog'),
3 => array('link' => 'connectornew', 'langKey' => 'connector.new_connector', 'routeName' => 'connectorNew'),
4 => array('link' => 'connectorConfig', 'langKey' => 'connector.config', 'routeName' => 'connectorConfig'),
);
return $menuItems;
}
}