From 3d201b3b6a67534694ffec6babdca4944e8aa09c Mon Sep 17 00:00:00 2001
From: Devyani Ravi <devyaniravi2003@gmail.com>
Date: Fri, 27 Sep 2024 15:31:51 +0000
Subject: [PATCH] fix phases to drop down

---
 docs/.vuepress/components/IterativeCycle.vue | 149 +++++++++++++------
 1 file changed, 102 insertions(+), 47 deletions(-)

diff --git a/docs/.vuepress/components/IterativeCycle.vue b/docs/.vuepress/components/IterativeCycle.vue
index 28967b0..bd8e49d 100644
--- a/docs/.vuepress/components/IterativeCycle.vue
+++ b/docs/.vuepress/components/IterativeCycle.vue
@@ -10,21 +10,21 @@
       </select>
     </div>
 
-    <!-- Phases Display -->
+    <!-- Cycles Display -->
     <div v-if="selectedModule !== null" class="cycle">
       <h2>{{ modules[selectedModule].title }}</h2>
-      <div v-if="modules[selectedModule].phases" class="phase-selector">
-        <label for="phase">Select Phase:</label>
-        <select id="phase" v-model="selectedPhase" class="phase-dropdown">
-          <option v-for="(phase, index) in modules[selectedModule].phases" :key="index" :value="index">
-            {{ phase.title }}
-          </option>
-        </select>
-      </div>
-
-      <div v-if="selectedPhase !== null" class="phase">
-        <h3>{{ modules[selectedModule].phases[selectedPhase].title }}</h3>
-        <p>{{ modules[selectedModule].phases[selectedPhase].description }}</p>
+      <div v-for="(cycle, index) in modules[selectedModule].cycles" :key="index" class="cycle-container">
+        <button @click="toggleCycle(index)" class="cycle-button">
+          {{ cycle.title }}
+        </button>
+        <div v-if="isCycleOpen(index)" class="cycle-details">
+          <h3>Phases:</h3>
+          <ul>
+            <li v-for="(phase, phaseIndex) in cycle.phases" :key="phaseIndex">
+              <strong>{{ phase.title }}:</strong> {{ phase.description }}
+            </li>
+          </ul>
+        </div>
       </div>
     </div>
   </div>
@@ -35,50 +35,87 @@ export default {
   data() {
     return {
       selectedModule: 0, // Default module selected
-      selectedPhase: 0, // Default phase selected
+      openCycles: [], // Track which cycles are open
       modules: [
         {
           title: 'Module 1: DBTL Cycles',
-          phases: [
-            { title: 'Design Cycle 1', description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.' },
-            { title: 'Build Cycle 1', description: 'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.' },
-            { title: 'Test Cycle 1', description: 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.' },
-            { title: 'Learn Cycle 1', description: 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore.' },
-            { title: 'Design Cycle 2', description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.' },
-            { title: 'Build Cycle 2', description: 'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.' },
-            { title: 'Test Cycle 2', description: 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.' },
-            { title: 'Learn Cycle 2', description: 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore.' },
-            { title: 'Design Cycle 3', description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.' },
-            { title: 'Build Cycle 3', description: 'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.' },
-            { title: 'Test Cycle 3', description: 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.' },
-            { title: 'Learn Cycle 3', description: 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore.' },
+          cycles: [
+            {
+              title: 'Cycle 1',
+              phases: [
+                { title: 'Design', description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.' },
+                { title: 'Build', description: 'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.' },
+                { title: 'Test', description: 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.' },
+                { title: 'Learn', description: 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore.' },
+              ]
+            },
+            {
+              title: 'Cycle 2',
+              phases: [
+                { title: 'Design', description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.' },
+                { title: 'Build', description: 'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.' },
+                { title: 'Test', description: 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.' },
+                { title: 'Learn', description: 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore.' },
+              ]
+            },
+            {
+              title: 'Cycle 3',
+              phases: [
+                { title: 'Design', description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.' },
+                { title: 'Build', description: 'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.' },
+                { title: 'Test', description: 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.' },
+                { title: 'Learn', description: 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore.' },
+              ]
+            }
           ]
         },
         {
           title: 'Module 2: Design & Build',
-          phases: [
-            { title: 'Design', description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.' },
-            { title: 'Build', description: 'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.' }
+          cycles: [
+            {
+              title: 'Cycle 1',
+              phases: [
+                { title: 'Design', description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.' },
+                { title: 'Build', description: 'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.' }
+              ]
+            }
           ]
         },
         {
           title: 'Module 3: Design Only',
-          phases: [
-            { title: 'Design', description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.' }
+          cycles: [
+            {
+              title: 'Cycle 1',
+              phases: [
+                { title: 'Design', description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.' }
+              ]
+            }
           ]
         },
         {
           title: 'Module 4: Design Only',
-          phases: [
-            { title: 'Design', description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.' }
+          cycles: [
+            {
+              title: 'Cycle 1',
+              phases: [
+                { title: 'Design', description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.' }
+              ]
+            }
           ]
         }
       ]
     };
   },
-  watch: {
-    selectedModule() {
-      this.selectedPhase = 0; // Reset phase selection when module changes
+  methods: {
+    toggleCycle(index) {
+      if (this.openCycles.includes(index)) {
+        this.openCycles = this.openCycles.filter(i => i !== index);
+      } else {
+        this.openCycles.push(index);
+      }
+    },
+    isCycleOpen(index) {
+      return this.openCycles.includes(index);
     }
   }
 };
@@ -101,8 +138,7 @@ export default {
   text-align: center;
 }
 
-.module-dropdown,
-.phase-dropdown {
+.module-dropdown {
   padding: 10px;
   font-size: 16px;
   border: 1px solid #3498db;
@@ -111,8 +147,7 @@ export default {
   transition: border-color 0.3s ease;
 }
 
-.module-dropdown:focus,
-.phase-dropdown:focus {
+.module-dropdown:focus {
   border-color: #2980b9;
 }
 
@@ -120,13 +155,29 @@ export default {
   margin-top: 20px;
 }
 
-.phase-selector {
-  margin-bottom: 20px;
+.cycle-container {
+  margin: 10px 0;
 }
 
-.phase {
-  margin-top: 20px;
-  padding: 15px;
+.cycle-button {
+  width: 100%;
+  padding: 10px;
+  font-size: 16px;
+  background-color: #3498db;
+  color: white;
+  border: none;
+  border-radius: 5px;
+  cursor: pointer;
+  transition: background-color 0.3s ease;
+}
+
+.cycle-button:hover {
+  background-color: #2980b9;
+}
+
+.cycle-details {
+  margin-top: 10px;
+  padding: 10px;
   border: 1px solid #ddd;
   border-radius: 5px;
   background-color: #ffffff;
@@ -143,7 +194,11 @@ h3 {
   margin-bottom: 10px;
 }
 
-p {
+ul {
+  margin-left: 20px;
+}
+
+li {
   color: #555;
 }
 </style>
-- 
GitLab