This commit is contained in:
2024-06-23 22:41:33 -04:00
parent 752b2a291e
commit d24c304c97
6 changed files with 303 additions and 10 deletions

View File

@ -387,4 +387,52 @@ class AjaxController extends AbstractController
return $res;
}
#[Route('/save-settings', name: 'app_save_settings', methods: ['POST'])]
public function saveSettings(Request $req, EntityManagerInterface $emi): Response
{
$data = json_decode($req->getContent());
/** @var User $user */
$user = $this->getUser();
if (!$user) {
return new Response(json_encode([
'msg' => 'No User'
]));
}
if (!$data->saveInterval) {
$data->saveInterval = 15;
}
if (!$data->saveReferences) {
$data->saveReferences = true;
}
if (!$data->noteTextSize) {
$data->noteTextSize = 12;
}
if (!$data->trackSaveSize) {
$data->trackSaveSize = false;
}
$meta = $user->getMetaData();
$meta['saveInterval'] = $data->saveInterval;
$meta['saveReferences'] = $data->saveReferences;
$meta['noteTextSize'] = $data->noteTextSize;
$meta['trackSaveSize'] = $data->trackSaveSize;
$meta['saveTimeout'] = $data->saveTimeout;
$meta['save-failure-count'] = $data->saveFailureCount;
$user->setMetaData($meta);
$emi->persist($user);
$emi->flush();
$res = new Response();
$res->setContent(json_encode([
'msg' => 'Settings Saved'
]));
return $res;
}
}

View File

@ -3,7 +3,6 @@
namespace App\Controller;
use App\Entity\Note;
use App\Entity\Reference;
use App\Entity\User;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
@ -11,7 +10,6 @@ use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Security\Http\Attribute\CurrentUser;
use Symfony\Component\Uid\Uuid;
class DefaultController extends AbstractController
{
@ -30,11 +28,13 @@ class DefaultController extends AbstractController
$this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');
$last4Notes = $emi->getRepository(Note::class)->getLast4Notes($user);
$openNotes = $emi->getRepository(Note::class)->reverseNoteSort($user);
$meta = $user->getMetaData();
return $this->render('default/home.html.twig', [
'last4Notes' => $last4Notes,
'reverseNoteSort' => $openNotes,
'isAdmin' => $this->isGranted('ROLE_ADMIN'),
'meta' => $meta,
]);
}
@ -44,6 +44,31 @@ class DefaultController extends AbstractController
return $this->render('default/cheat-sheet.html.twig');
}
#[Route('/profile', name: 'app_profile')]
public function profile(): Response
{
/** @var User $user */
$user = $this->getUser();
$meta = $user->getMetaData();
if (!$meta) {
$meta = [
'saveInterval' => 15,
'saveReferences' => 'checked',
'noteTextSize' => 12,
'trackSaveSize' => null,
'saveFailureCount' => 3,
'saveTimeout' => 5,
];
} else {
$meta['saveReferences'] = $meta['saveReferences'] ? 'checked' : null;
$meta['trackSaveSize'] = $meta['trackSaveSize'] ? 'checked' : null;
}
return $this->render('default/profile.html.twig', [
'meta' => $meta,
]);
}
#[Route('/reference-editor', name: 'app_reference_editor')]
public function referenceEditor(EntityManagerInterface $emi): Response
{