Move navigation from _menu.json files in each navigation-parent directory to a naviga...
[ndcode_site.git] / my_account / index.html.jst
index d7deb7e..452516d 100644 (file)
@@ -7,10 +7,10 @@ return async env => {
   let fa_trash = await env.site.get_min_svg('/_svg/fa_trash.svg')
   let get_placeholder = await _require('/_lib/get_placeholder.jst')
   let get_account = await _require('/_lib/get_account.jst')
+  let get_navigation = await _require('/_lib/get_navigation.jst')
   let get_session = await _require('/_lib/get_session.jst')
   let icon_cross = await env.site.get_min_svg('/_svg/icon_cross.svg')
   let icon_tick = await env.site.get_min_svg('/_svg/icon_tick.svg')
-  let menu = await env.site.get_menu('/my_account/_menu.json')
   let navbar = await _require('/_lib/navbar.jst')
 
   // preload draft details if any
@@ -227,27 +227,42 @@ return async env => {
         // signed out
         p {'For account maintenance, please click on one of the options below.'}
 
-        ul.nav.flex-column {
-          let entries = menu.entries
-          for (let i = 0; i < entries.length; ++i) {
-            let entry = entries[i]
-            if (Object.prototype.hasOwnProperty.call(entry, 'icon'))
+        let transaction = await env.site.database.Transaction()
+        try {
+          let root = await transaction.get()
+          let p = await get_navigation(root, env.component_names)
+          let children = await p.get('children')
+          let menu = await p.get_json('menu')
+  
+          ul.nav.flex-column {
+            for (let i = 0; i < menu.length; ++i) {
+              let name = menu[i]
+              let q = await children.get(name)
+  
               li.nav-item {
-                a.nav-link(href=`${entry.dir}/index.html`) {
+                a.nav-link(href=`${name}/index.html`) {
                   table.icon-and-text {
                     tr {
                       td {
-                        _out.push(await env.site.get_min_svg(entry.icon))
+                        _out.push(
+                          await env.site.get_min_svg(await q.get_json('icon'))
+                        )
                       }
                       td {
-                        span.h2{`${entry.name}`}
+                        span.h2{
+                          `${await q.get_json('title')}`
+                        }
                       }
                     }
                   }
                 }
               }
+            }
           }
         }
+        finally {
+          transaction.rollback()
+        }
       }
     },
     // scripts