Compare commits
No commits in common. "3e278c27fa5a9810548f9b56ab68dba0be0dd219" and "d0e2e102226b9515470168eb9b98e5bda8bfe8ee" have entirely different histories.
3e278c27fa
...
d0e2e10222
@ -5,7 +5,6 @@ var tabs = [];
|
|||||||
let saved = false;
|
let saved = false;
|
||||||
let textDirty = false;
|
let textDirty = false;
|
||||||
let saveTimeout = 10000;
|
let saveTimeout = 10000;
|
||||||
var to = null;
|
|
||||||
|
|
||||||
document.addEventListener('keyup', function (event) {
|
document.addEventListener('keyup', function (event) {
|
||||||
if (event.key == "F3") {
|
if (event.key == "F3") {
|
||||||
@ -61,9 +60,7 @@ function setHeight() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (!to) {
|
setTimeout(saveNote, saveTimeout);
|
||||||
to = setTimeout(saveNote, saveTimeout);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function search() {
|
function search() {
|
||||||
@ -136,8 +133,7 @@ function saveNote(event) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!textDirty || !validateNote()) {
|
if (!textDirty || !validateNote()) {
|
||||||
clearTimeout(to);
|
setTimeout(saveNote, saveTimeout);
|
||||||
to = setTimeout(saveNote, saveTimeout);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -165,14 +161,10 @@ function saveNote(event) {
|
|||||||
saved = true;
|
saved = true;
|
||||||
textDirty = false;
|
textDirty = false;
|
||||||
document.querySelector('#note-header-left h2').classList.remove('dirty');
|
document.querySelector('#note-header-left h2').classList.remove('dirty');
|
||||||
|
|
||||||
if (data.new) {
|
|
||||||
document.querySelector('#noteId').value = data.id;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => console.log(error))
|
.catch(error => console.log(error))
|
||||||
.finally(() => function () { clearTimeout(to); to = setTimeout(saveNote, saveTimeout); });
|
.finally(() => setTimeout(saveNote, saveTimeout));
|
||||||
}
|
}
|
||||||
|
|
||||||
function validateNote() {
|
function validateNote() {
|
||||||
@ -181,8 +173,10 @@ function validateNote() {
|
|||||||
const speaker = document.querySelector('#speaker');
|
const speaker = document.querySelector('#speaker');
|
||||||
const series = document.querySelector('#series');
|
const series = document.querySelector('#series');
|
||||||
const title = document.querySelector('#noteTitle');
|
const title = document.querySelector('#noteTitle');
|
||||||
|
const id = document.querySelector('#noteId');
|
||||||
const psg = document.querySelector('#passage');
|
const psg = document.querySelector('#passage');
|
||||||
|
|
||||||
|
if (!isUuidValid(id.value)) { return false; }
|
||||||
if (!title.value.length) { return false; }
|
if (!title.value.length) { return false; }
|
||||||
if (!date.value) { return false; }
|
if (!date.value) { return false; }
|
||||||
if (!parseInt(speaker.value)) { return false; }
|
if (!parseInt(speaker.value)) { return false; }
|
||||||
@ -386,7 +380,6 @@ function queryRef(type = null, book = null, input = null) {
|
|||||||
document.querySelector('#referenceType').value = '';
|
document.querySelector('#referenceType').value = '';
|
||||||
document.querySelector('#referenceBook').value = '';
|
document.querySelector('#referenceBook').value = '';
|
||||||
document.querySelector('#referenceBook').style.display = 'none';
|
document.querySelector('#referenceBook').style.display = 'none';
|
||||||
document.querySelector('#refQuery #search').value = '';
|
|
||||||
closeRef();
|
closeRef();
|
||||||
|
|
||||||
saved = false;
|
saved = false;
|
||||||
|
@ -98,8 +98,8 @@ class AjaxController extends AbstractController
|
|||||||
$user = $this->getUser();
|
$user = $this->getUser();
|
||||||
|
|
||||||
$speaker = new Speaker();
|
$speaker = new Speaker();
|
||||||
$speaker->setName($data->speakerName)
|
$speaker->setName($data->speakerName);
|
||||||
->setUser($user);
|
$speaker->setUser($user);
|
||||||
|
|
||||||
$emi->persist($speaker);
|
$emi->persist($speaker);
|
||||||
$emi->flush();
|
$emi->flush();
|
||||||
@ -139,8 +139,8 @@ class AjaxController extends AbstractController
|
|||||||
$user = $this->getUser();
|
$user = $this->getUser();
|
||||||
|
|
||||||
$series = new Series();
|
$series = new Series();
|
||||||
$series->setName($data->seriesName)
|
$series->setName($data->seriesName);
|
||||||
->setUser($user);
|
$series->setUser($user);
|
||||||
|
|
||||||
$emi->persist($series);
|
$emi->persist($series);
|
||||||
$emi->flush();
|
$emi->flush();
|
||||||
@ -267,28 +267,22 @@ class AjaxController extends AbstractController
|
|||||||
public function saveNote(Request $req, EntityManagerInterface $emi): Response
|
public function saveNote(Request $req, EntityManagerInterface $emi): Response
|
||||||
{
|
{
|
||||||
$data = json_decode($req->getContent());
|
$data = json_decode($req->getContent());
|
||||||
$newNote = false;
|
$note = $emi->getRepository(Note::class)->find($data->id);
|
||||||
if (isset($data->id) && $data->id) {
|
|
||||||
/** @var Note|array $note */
|
|
||||||
$note = $emi->getRepository(Note::class)->findBy(['id' => $data->id, 'user' => $this->getUser()]);
|
|
||||||
|
|
||||||
if (is_array($note) && count($note) > 0) {
|
if (!$note) {
|
||||||
/** @var Note $note */
|
|
||||||
$note = $note[0];
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$note = new Note();
|
$note = new Note();
|
||||||
$newNote = true;
|
$uuid = Uuid::fromString($data->id);
|
||||||
$note->setUser($this->getUser());
|
$note->setId($uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
$refs = json_decode(json_encode($data->refs), true);
|
$refs = json_decode(json_encode($data->refs), true);
|
||||||
|
|
||||||
$series = $emi->getRepository(Series::class)->find($data->series);
|
$series = $emi->getRepository(Series::class)->find($data->series);
|
||||||
$speaker = $emi->getRepository(Speaker::class)->find($data->speaker);
|
$speaker = $emi->getRepository(Speaker::class)->find($data->speaker);
|
||||||
|
$user = $this->getUser();
|
||||||
|
|
||||||
/** @var Note $note */
|
$note->setUser($user)
|
||||||
$note->setTitle($data->title)
|
->setTitle($data->title)
|
||||||
->setDate(new DateTime($data->date))
|
->setDate(new DateTime($data->date))
|
||||||
->setSeries($series)
|
->setSeries($series)
|
||||||
->setSpeaker($speaker)
|
->setSpeaker($speaker)
|
||||||
@ -302,8 +296,7 @@ class AjaxController extends AbstractController
|
|||||||
$res = new Response();
|
$res = new Response();
|
||||||
$res->setContent(json_encode([
|
$res->setContent(json_encode([
|
||||||
'msg' => 'saved',
|
'msg' => 'saved',
|
||||||
'id' => $note->getId(),
|
'id' => $note->getId()
|
||||||
'new' => $newNote,
|
|
||||||
]));
|
]));
|
||||||
|
|
||||||
return $res;
|
return $res;
|
||||||
|
@ -26,9 +26,11 @@ class DefaultController extends AbstractController
|
|||||||
{
|
{
|
||||||
$this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');
|
$this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');
|
||||||
$last4Notes = $emi->getRepository(Note::class)->getLast4Notes($user);
|
$last4Notes = $emi->getRepository(Note::class)->getLast4Notes($user);
|
||||||
|
$uuid = Uuid::v4();
|
||||||
|
|
||||||
return $this->render('default/home.html.twig', [
|
return $this->render('default/home.html.twig', [
|
||||||
'last4Notes' => $last4Notes,
|
'last4Notes' => $last4Notes,
|
||||||
|
'id' => $uuid,
|
||||||
'isAdmin' => $this->isGranted('ROLE_ADMIN'),
|
'isAdmin' => $this->isGranted('ROLE_ADMIN'),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
@ -73,7 +73,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id='fields-container'>
|
<div id='fields-container'>
|
||||||
<input type="hidden" id="noteId" value="" />
|
<input type="hidden" id="noteId" value="{{ id }}" />
|
||||||
<input type="text" id="noteTitle" placeholder="Title..." />
|
<input type="text" id="noteTitle" placeholder="Title..." />
|
||||||
<input type='text' id='noteDate' onchange='textDirty=true;saved=false;' />
|
<input type='text' id='noteDate' onchange='textDirty=true;saved=false;' />
|
||||||
<input type='text' id='newSpeaker' placeholder='Name...' onkeyup='saveSpeaker(event)' style='display:none;' />
|
<input type='text' id='newSpeaker' placeholder='Name...' onkeyup='saveSpeaker(event)' style='display:none;' />
|
||||||
|
Loading…
Reference in New Issue
Block a user