From dc463522d3b332e56f6dcd7b65edb5a6b267295f Mon Sep 17 00:00:00 2001
From: n_herr03 <nina.herrmann@uni-muenster.de>
Date: Tue, 18 Oct 2022 17:37:47 +0200
Subject: [PATCH] WIP add secondary navigation TODO: add to settings page

---
 activeworkflows.php                 |  1 +
 coursebackups.php                   |  2 +-
 delayedcourses.php                  |  3 +++
 errors.php                          |  2 ++
 renderer.php                        | 28 ++++++++++++++++++++++++++++
 styles.css                          |  4 +++-
 templates/workflowoverview.mustache |  5 +++++
 workflowdrafts.php                  |  5 ++---
 8 files changed, 45 insertions(+), 5 deletions(-)

diff --git a/activeworkflows.php b/activeworkflows.php
index 75d91b6..98cd861 100644
--- a/activeworkflows.php
+++ b/activeworkflows.php
@@ -48,6 +48,7 @@ $PAGE->set_heading(get_string('active_workflows_header', 'tool_lifecycle'));
 $renderer = $PAGE->get_renderer('tool_lifecycle');
 
 echo $renderer->header(' ');
+echo $renderer->render_extra_navigation();
 
 echo $renderer->render_from_template('tool_lifecycle/search_input', [
     'action' => (new moodle_url(urls::ACTIVE_PROCESSES))->out(false),
diff --git a/coursebackups.php b/coursebackups.php
index 711b524..1c45bb0 100644
--- a/coursebackups.php
+++ b/coursebackups.php
@@ -56,7 +56,7 @@ $PAGE->set_heading(get_string('course_backups_list_header', 'tool_lifecycle'));
 $renderer = $PAGE->get_renderer('tool_lifecycle');
 
 echo $renderer->header();
-
+echo $renderer->render_extra_navigation();
 echo '<br>';
 
 $mform->display();
diff --git a/delayedcourses.php b/delayedcourses.php
index 923cd36..41653a8 100644
--- a/delayedcourses.php
+++ b/delayedcourses.php
@@ -143,6 +143,9 @@ $table = new delayed_courses_table($data);
 $table->define_baseurl($PAGE->url);
 
 echo $OUTPUT->header();
+$renderer = $PAGE->get_renderer('tool_lifecycle');
+echo $renderer->render_extra_navigation();
+
 $mform->display();
 $table->out(100, false);
 
diff --git a/errors.php b/errors.php
index 40c80bc..1ff38a0 100644
--- a/errors.php
+++ b/errors.php
@@ -65,6 +65,8 @@ $table->define_baseurl($PAGE->url);
 $PAGE->requires->js_call_amd('tool_lifecycle/tablebulkactions', 'init');
 
 echo $OUTPUT->header();
+$renderer = $PAGE->get_renderer('tool_lifecycle');
+echo $renderer->render_extra_navigation();
 $table->out(100, false);
 
 echo $OUTPUT->footer();
diff --git a/renderer.php b/renderer.php
index f17197d..0d67f4b 100644
--- a/renderer.php
+++ b/renderer.php
@@ -64,5 +64,33 @@ class tool_lifecycle_renderer extends plugin_renderer_base {
         echo $form->render();
         $this->footer();
     }
+    public function render_extra_navigation () {
+        $data2 = new stdClass();
+        $children = array();
+        $urls = array('/admin/settings.php?section=tool_lifecycle', '/admin/tool/lifecycle/workflowdrafts.php',
+            '/admin/tool/lifecycle/activeworkflows.php', '/admin/tool/lifecycle/delayedcourses.php',
+            '/admin/tool/lifecycle/step/adminapprove/index.php', '/admin/tool/lifecycle/errors.php',
+            '/admin/tool/lifecycle/coursebackups.php');
+        $names = array(get_string('edit') . ' ' . get_string('general_settings_header', 'tool_lifecycle'),
+            get_string('edit') . ' ' . get_string('workflow_drafts_header', 'tool_lifecycle'),
+            get_string('edit') . ' ' . get_string('active_workflows_header', 'tool_lifecycle'),
+            get_string('view') . ' ' . get_string('delayed_courses_header', 'tool_lifecycle'),
+            get_string('manage-adminapprove', 'lifecyclestep_adminapprove'),
+            get_string('process_errors_header', 'tool_lifecycle'),
+            get_string('course_backups_list_header', 'tool_lifecycle'));
+
+        for ($i = 0; $i < count($names); $i++) {
+            $navitem = new stdClass();
+            $navitem->active = true;
+            $navitem->showchildreninsubmenu = false;
+            $navitem->url = new moodle_url($urls[$i]);
+            $navitem->text = $names[$i];
+            array_push($children, $navitem);
+        }
+        $data2->children = $children;
+        $moremenu = new \core\navigation\output\more_menu($data2, 'nav', true);
+        $secondarynavigation = $moremenu->export_for_template($this->output);
+        return $this->output->render_from_template('tool_lifecycle/navigation_helper', $secondarynavigation);
+    }
 
 }
diff --git a/styles.css b/styles.css
index 8ecb119..7ab7e12 100644
--- a/styles.css
+++ b/styles.css
@@ -13,7 +13,9 @@ body.path-admin-tool-lifecycle .wf-secondary-info,
 .lifecycle-highlighted {
     background-color: rgba(0, 178, 255, 0.15);
 }
-
+nav.moremenu {
+    opacity: 1;
+}
 span.tool_lifecycle-hint {
     text-decoration: underline dashed #444;
 }
diff --git a/templates/workflowoverview.mustache b/templates/workflowoverview.mustache
index a3d6b7e..6bc654a 100644
--- a/templates/workflowoverview.mustache
+++ b/templates/workflowoverview.mustache
@@ -71,6 +71,11 @@
     }
 }}
 <div class="d-flex" id="lifecycle-workflow-details">
+        <div class="navigation" style="width: 100%">
+            {{#navitems}}
+                <a href="{{navlink}}"> {{navname}}</a> -
+            {{/navitems}}
+        </div>
     <div class="wf-wrapper">
         <div class="bg-light d-inline-block p-3 position-relative" style="max-width: 800px;">
             <a class="edit-pen" href="{{{editsettingslink}}}">{{#pix}} i/edit, core, {{/pix}}</a>
diff --git a/workflowdrafts.php b/workflowdrafts.php
index d86b6a3..64f0578 100644
--- a/workflowdrafts.php
+++ b/workflowdrafts.php
@@ -48,6 +48,8 @@ $PAGE->set_heading(get_string('workflow_drafts_header', 'tool_lifecycle'));
 $renderer = $PAGE->get_renderer('tool_lifecycle');
 
 echo $renderer->header();
+echo $renderer->render_extra_navigation();
+
 
 echo html_writer::link(new \moodle_url(urls::EDIT_WORKFLOW),
     get_string('add_workflow', 'tool_lifecycle'), ['class' => 'btn btn-primary mx-1']);
@@ -63,9 +65,6 @@ echo $OUTPUT->box_start("lifecycle-enable-overflow lifecycle-table");
 $table->out(10, false);
 echo $OUTPUT->box_end();
 
-echo \html_writer::link(new \moodle_url(urls::ACTIVE_WORKFLOWS),
-    get_string('active_workflows_list', 'tool_lifecycle'));
-echo '<br>';
 echo \html_writer::link(new \moodle_url(urls::DEACTIVATED_WORKFLOWS),
     get_string('deactivated_workflows_list', 'tool_lifecycle'));
 
-- 
GitLab