<?php
namespace App\Controller;
use App\Entity\Document\Document;
use App\Entity\Todo;
use App\Form\TodoType;
use App\Repository\Document\ActorRepository;
use App\Repository\StatementRepository;
use App\Repository\TodoRepository;
use App\Repository\Transaction\TransactionRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Address;
use Symfony\Component\Routing\Annotation\Route;
class SiteController extends AbstractController
{
/**
* @Route("/", name="home")
*/
public function index(TransactionRepository $transRepo): Response
{
return $this->render('site/home.html.twig', [
'transactions' => $transRepo->findNeedingAttention()
]);
}
/**
* @Route("/tasks", name="tasks")
*/
public function tasks(TodoRepository $todoRepository): Response
{
$form = $this->createForm(TodoType::class, new Todo());
//$form->handleRequest($request);
return $this->render('todo/index.html.twig', [
'todos' => $todoRepository->findBy([],['done'=>'ASC', 'priority'=>'DESC', 'id'=>'ASC']),
'form' => $form
]);
}
/**
* @Route("/contact", name="contact")
*/
public function contact(): Response
{
return $this->render('site/contact.html.twig', []);
}
/**
* @Route("/search", name="globalSearch", methods={"POST"})
*/
public function globalSearch(Request $request, TransactionRepository $repository): Response
{
if(!$request->get('text') || $request->get('text') == '') {
$this->addFlash('warning', 'Please provide a valid search string or value');
return $this->redirectToRoute('home');
}
$text = trim($request->get('text'));
$results = $repository->search($text);
return $this->render('site/search.html.twig', [
'text' => $text,
'loan_res' => $results['loan'],
'uoo_res' => $results['uoo'],
'income_res' => $results['income'],
'crypto_res' => $results['crypto']
]);
}
}