diff --git a/README.md b/README.md index 629e7ecb1..1cb9ae129 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ ![](https://avatars0.githubusercontent.com/u/4995607?v=3&s=100) +# Naudingos nuorodos + +https://github.com/aurelijusb/kickstart/pull/90 + NFQ Akademija ============ diff --git a/assets/js/validation.js b/assets/js/validation.js index 1881c8a67..e8bd785f8 100644 --- a/assets/js/validation.js +++ b/assets/js/validation.js @@ -1,21 +1,50 @@ const axios = require('axios'); let name = document.getElementById('name'); -let validationResult = document.getElementById('validation-result'); +let team = document.getElementById('team'); +let validateNameResult = document.getElementById('validation-result-name'); +let validateTeamResult = document.getElementById('validation-result-team'); const validateName = function () { - validationResult.innerText = '...'; - axios.post(validationResult.dataset.path, {input: name.value}) + validateNameResult.innerText = '...'; + axios.post(validateNameResult.dataset.path, {input: name.value}) .then(function(response) { if (response.data.valid) { - validationResult.innerHTML = ":)"; + validateNameResult.innerHTML = ":)"; } else { - validationResult.innerHTML = ":("; + validateNameResult.innerHTML = ":("; } }) .catch(function (error) { - validationResult.innerText = 'Error: ' + error; + validateNameResult.innerText = 'Error: ' + error; }); }; +const validateTeam = function () { + validateTeamResult.innerText = '...'; + axios.post(validateTeamResult.dataset.path, {input: name.value, input2: team.value}) + .then(function(response) { + if (response.data.valid) { + validateTeamResult.innerHTML = ":)"; + } else { + validateTeamResult.innerHTML = ":("; + } + }) + .catch(function (error) { + validateTeamResult.innerText = 'Error: ' + error; + }); +}; + +name.onkeyup = () => {pleaseWork([validateName, validateTeam])}; +name.onchange = () => {pleaseWork([validateName, validateTeam])}; +team.onkeyup = () => {pleaseWork([validateTeam])}; +team.onchange = () => {pleaseWork([validateTeam])}; -name.onkeyup = validateName; -name.onchange = validateName; +var timeout; +function pleaseWork (funcs) { + clearTimeout(timeout); + executor = (funcs) => { + for (var i=0; i{executor(funcs)} , 200) +} diff --git a/src/Controller/PeopleController.php b/src/Controller/PeopleController.php index bb86b5f8e..7e3d17e6f 100644 --- a/src/Controller/PeopleController.php +++ b/src/Controller/PeopleController.php @@ -11,23 +11,23 @@ class PeopleController extends AbstractController { - /** - * @Route("/people", name="people") - */ + /** + * @Route("/people", name="people") + */ public function index() { return $this->render('people/index.html.twig', [ - 'controller_name' => 'PeopleController', + 'controller_name' => 'PeopleController', ]); } - /** - * @Route( - * "/validate/{element}", - * name="validatePerson", - * methods={"POST"} - * ) - */ + /** + * @Route( + * "/validate/{element}", + * name="validatePerson", + * methods={"POST"} + * ) + */ public function validate(Request $request, string $element) { try { @@ -40,6 +40,14 @@ public function validate(Request $request, string $element) switch ($element) { case 'name': return new JsonResponse(['valid' => in_array(strtolower($input), $students)]); + case 'team': + $studentTeam = $this->getStudentTeam($input); + $input2 = json_decode($request->getContent(), true)['input2']; + $isValidTeam = false; + if ($input) { + $isValidTeam = (strtolower($input2) === $studentTeam); + } + return new JsonResponse(['valid' => $isValidTeam]); } return new JsonResponse(['error' => 'Invalid arguments'], Response::HTTP_BAD_REQUEST); @@ -47,7 +55,8 @@ public function validate(Request $request, string $element) private function getStorage() { - return /** @lang json */ + return + /** @lang json */ '{ "team1": { "name": "Team1", @@ -242,4 +251,17 @@ private function getStudents(): array } return $students; } + + private function getStudentTeam(string $student_name) + { + $storage = json_decode($this->getStorage(), true); + foreach ($storage as $teamData) { + foreach ($teamData['students'] as $student) { + if (strtolower($student_name) == strtolower($student)) { + return strtolower($teamData['name']); + } + } + } + return null; + } } diff --git a/templates/people/index.html.twig b/templates/people/index.html.twig index cd18cf87f..007b066e5 100644 --- a/templates/people/index.html.twig +++ b/templates/people/index.html.twig @@ -10,7 +10,10 @@ - + +
+ + {% endblock %} {% block javascripts %}