diff --git a/src/Controller/SafetyController.php b/src/Controller/SafetyController.php
index 1d19a26..a9ad58f 100644
--- a/src/Controller/SafetyController.php
+++ b/src/Controller/SafetyController.php
@@ -46,14 +46,59 @@ class SafetyController extends AbstractController
return $this->render('Training/Safety/SafetyQuiz.html.twig',['quiz'=>$form]);
}
#[Route('/Training/Safety/Topics/{topic?}')]
- public function Topics(?string $topic) : Response
+ public function Topics(?string $topic, LoggerInterface $log) : Response
{
//We want to show the safety homepage if this is blank
if($topic == null)
{
return $this->redirectToRoute('safetyHome');
}
+
+ //We need to get the previous and next topics for nav buttons
+ //FEATURING: Regret for not having mapped this YAML file to a data model that would have saved myself a lot of trouble and spaghetti
+ $contentFile = Yaml::parseFile('../config/safetyLinks.yaml', 2, 2, Yaml::PARSE_OBJECT_FOR_MAP);
+ $previousTopic = $nextTopic = ""; //declare ahead of time for scoping
+
+ $arrayKeys = array_keys($contentFile['Cards']);
+ foreach($arrayKeys as $key)
+ {
+ $card = $contentFile['Cards'][$key];
+ for($i = 0; $i < count($card); $i++)
+ {
+ $entry = $card[$i];
+ $cardIndex = array_search($key, $arrayKeys);
+ if($entry['url'] == $topic)
+ {
+ //Assign Previous Topic
+ if($i > 0)
+ {
+ $previousTopic = $contentFile['Cards'][$arrayKeys[$cardIndex]][$i-1];
+ }
+ else if($cardIndex > 0) //there's a previous card, use the last entry in it
+ {
+ //NOTE: Should be fine to use end, at this point we shouldn't care about the array's internal pointer, we're done iterating
+ $previousTopic = end($contentFile['Cards'][$arrayKeys[$cardIndex-1]]);
+ }
+
+ //Assign Next Topic
+ if($i < count($card)-1) //Next topic should be within the same card
+ {
+ $nextTopic = $contentFile['Cards'][$arrayKeys[$cardIndex]][$i+1];
+ }
+ else if($cardIndex < count($contentFile['Cards'])-1) //Next topic is not in same card, or does not exist
+ {
+ $nextTopic = $contentFile['Cards'][$arrayKeys[$cardIndex+1]][0]; //Set to first entry in next card
+ }
+ break 2; //Got what we needed, break out of both for loops
+ }
+ }
+ }
+
$topic = strtolower($topic);
- return $this->render('Training/Safety/Topics/'.$topic.".html.twig");
+ //TODO: Insert back button
+ $navButtonData = ['previous'=> $previousTopic, 'next' => $nextTopic];
+ $contents = $this->render('Training/Safety/Topics/'.$topic.".html.twig", $navButtonData);
+ $navButtons = $this->render('Training/Safety/navButtons.html.twig',$navButtonData);
+ return new Response($contents . $navButtons);
}
-}
\ No newline at end of file
+}
diff --git a/templates/Training/Safety/Topics/actionplan.html.twig b/templates/Training/Safety/Topics/actionplan.html.twig
index c33cdbe..d40f0af 100644
--- a/templates/Training/Safety/Topics/actionplan.html.twig
+++ b/templates/Training/Safety/Topics/actionplan.html.twig
@@ -3,6 +3,7 @@
{{ include('_header.html.twig') }}
{{ include('_navbar.html.twig')}}
+{{ include('Training/Safety/navButtons.html.twig') }}
Emergency Action Plan
diff --git a/templates/Training/Safety/Topics/bloodborne.html.twig b/templates/Training/Safety/Topics/bloodborne.html.twig
index 2584b2b..d1b3019 100644
--- a/templates/Training/Safety/Topics/bloodborne.html.twig
+++ b/templates/Training/Safety/Topics/bloodborne.html.twig
@@ -3,6 +3,7 @@
{{ include('_header.html.twig') }}
{{ include('_navbar.html.twig')}}
+{{ include('Training/Safety/navButtons.html.twig') }}
diff --git a/templates/Training/Safety/Topics/crane.html.twig b/templates/Training/Safety/Topics/crane.html.twig
index ed724fb..5aa12f6 100644
--- a/templates/Training/Safety/Topics/crane.html.twig
+++ b/templates/Training/Safety/Topics/crane.html.twig
@@ -3,6 +3,7 @@
{{ include('_header.html.twig') }}
{{ include('_navbar.html.twig')}}
+{{ include('Training/Safety/navButtons.html.twig') }}
Crane / Hoist Safety
diff --git a/templates/Training/Safety/Topics/electrical.html.twig b/templates/Training/Safety/Topics/electrical.html.twig
index 72e246d..9f3472f 100644
--- a/templates/Training/Safety/Topics/electrical.html.twig
+++ b/templates/Training/Safety/Topics/electrical.html.twig
@@ -3,6 +3,7 @@
{{ include('_header.html.twig') }}
{{ include('_navbar.html.twig')}}
+{{ include('Training/Safety/navButtons.html.twig') }}
Electrical Safety
diff --git a/templates/Training/Safety/Topics/extinguisher.html.twig b/templates/Training/Safety/Topics/extinguisher.html.twig
index 848391f..6f90654 100644
--- a/templates/Training/Safety/Topics/extinguisher.html.twig
+++ b/templates/Training/Safety/Topics/extinguisher.html.twig
@@ -3,6 +3,7 @@
{{ include('_header.html.twig') }}
{{ include('_navbar.html.twig')}}
+{{ include('Training/Safety/navButtons.html.twig') }}
Fire Extinguisher Operation
diff --git a/templates/Training/Safety/Topics/fireprevention.html.twig b/templates/Training/Safety/Topics/fireprevention.html.twig
index 4d0eff7..a2b5909 100644
--- a/templates/Training/Safety/Topics/fireprevention.html.twig
+++ b/templates/Training/Safety/Topics/fireprevention.html.twig
@@ -3,6 +3,7 @@
{{ include('_header.html.twig') }}
{{ include('_navbar.html.twig')}}
+{{ include('Training/Safety/navButtons.html.twig') }}
Fire Prevention
diff --git a/templates/Training/Safety/Topics/general.html.twig b/templates/Training/Safety/Topics/general.html.twig
index 926c496..9c83c88 100644
--- a/templates/Training/Safety/Topics/general.html.twig
+++ b/templates/Training/Safety/Topics/general.html.twig
@@ -2,9 +2,10 @@
{{ include('_header.html.twig') }}
-
+{{ include('_navbar.html.twig')}}
+{{ include('Training/Safety/navButtons.html.twig') }}
- {{ include('_navbar.html.twig')}}
+
General Rules at J.V. Manufacturing, Inc.
diff --git a/templates/Training/Safety/Topics/guarding.html.twig b/templates/Training/Safety/Topics/guarding.html.twig
index 5d9917f..ac342e5 100644
--- a/templates/Training/Safety/Topics/guarding.html.twig
+++ b/templates/Training/Safety/Topics/guarding.html.twig
@@ -3,6 +3,7 @@
{{ include('_header.html.twig') }}
{{ include('_navbar.html.twig')}}
+{{ include('Training/Safety/navButtons.html.twig') }}
Machine Guarding
diff --git a/templates/Training/Safety/Topics/hazardcommunication.html.twig b/templates/Training/Safety/Topics/hazardcommunication.html.twig
index 12c204f..5cd90d5 100644
--- a/templates/Training/Safety/Topics/hazardcommunication.html.twig
+++ b/templates/Training/Safety/Topics/hazardcommunication.html.twig
@@ -3,6 +3,7 @@
{{ include('_header.html.twig') }}
{{ include('_navbar.html.twig')}}
+{{ include('Training/Safety/navButtons.html.twig') }}
Hazard Communication
diff --git a/templates/Training/Safety/Topics/hearing.html.twig b/templates/Training/Safety/Topics/hearing.html.twig
index 4b4686f..558714d 100644
--- a/templates/Training/Safety/Topics/hearing.html.twig
+++ b/templates/Training/Safety/Topics/hearing.html.twig
@@ -3,6 +3,7 @@
{{ include('_header.html.twig') }}
{{ include('_navbar.html.twig')}}
+{{ include('Training/Safety/navButtons.html.twig') }}
Hearing Protection
diff --git a/templates/Training/Safety/Topics/powertools.html.twig b/templates/Training/Safety/Topics/powertools.html.twig
index a8f2bd3..13a5883 100644
--- a/templates/Training/Safety/Topics/powertools.html.twig
+++ b/templates/Training/Safety/Topics/powertools.html.twig
@@ -3,6 +3,7 @@
{{ include('_header.html.twig') }}
{{ include('_navbar.html.twig')}}
+{{ include('Training/Safety/navButtons.html.twig') }}
Hand & Power Tools
diff --git a/templates/Training/Safety/Topics/ppe.html.twig b/templates/Training/Safety/Topics/ppe.html.twig
index 97b84d3..b23e27d 100644
--- a/templates/Training/Safety/Topics/ppe.html.twig
+++ b/templates/Training/Safety/Topics/ppe.html.twig
@@ -3,6 +3,7 @@
{{ include('_header.html.twig') }}
{{ include('_navbar.html.twig')}}
+{{ include('Training/Safety/navButtons.html.twig') }}
Personal Protective Equipment (Eyes, Face, Hands, & Feet)
diff --git a/templates/Training/Safety/Topics/safelifting.html.twig b/templates/Training/Safety/Topics/safelifting.html.twig
index d2f059d..04c0508 100644
--- a/templates/Training/Safety/Topics/safelifting.html.twig
+++ b/templates/Training/Safety/Topics/safelifting.html.twig
@@ -3,6 +3,7 @@
{{ include('_header.html.twig') }}
{{ include('_navbar.html.twig')}}
+{{ include('Training/Safety/navButtons.html.twig') }}
Safe Lifting
diff --git a/templates/Training/Safety/Topics/tagout.html.twig b/templates/Training/Safety/Topics/tagout.html.twig
index 9f13895..0d2b8bf 100644
--- a/templates/Training/Safety/Topics/tagout.html.twig
+++ b/templates/Training/Safety/Topics/tagout.html.twig
@@ -3,6 +3,7 @@
{{ include('_header.html.twig') }}
{{ include('_navbar.html.twig')}}
+{{ include('Training/Safety/navButtons.html.twig') }}
Lockout Tagout
diff --git a/templates/Training/Safety/Topics/welding.html.twig b/templates/Training/Safety/Topics/welding.html.twig
index b11542f..523299a 100644
--- a/templates/Training/Safety/Topics/welding.html.twig
+++ b/templates/Training/Safety/Topics/welding.html.twig
@@ -3,6 +3,7 @@
{{ include('_header.html.twig') }}
{{ include('_navbar.html.twig')}}
+{{ include('Training/Safety/navButtons.html.twig') }}
Welding Safety
diff --git a/templates/Training/Safety/navButtons.html.twig b/templates/Training/Safety/navButtons.html.twig
new file mode 100644
index 0000000..9b7512f
--- /dev/null
+++ b/templates/Training/Safety/navButtons.html.twig
@@ -0,0 +1,19 @@
+
+
+
\ No newline at end of file