From 5538881c12e414d8beb9270f6a53cf0a55fa2550 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=B8=E3=83=A7=E3=82=B7=E3=83=A5?= Date: Fri, 19 Jul 2019 13:06:50 +0700 Subject: [PATCH] Implement tree list --- lib/templates/summary.js | 51 ++++++++++++++++++++++++++-------------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/lib/templates/summary.js b/lib/templates/summary.js index 48a57fa..925aee3 100644 --- a/lib/templates/summary.js +++ b/lib/templates/summary.js @@ -1,29 +1,44 @@ +function makeTree (db) { + let map = {}; + let tree = {}; + let node; + + for (let item in db) { + map[item] = item; + db[item].CHILDREN = {}; + } + + for (let item in db) { + node = db[item]; + if (node.FROM === undefined) { + tree[item] = node; + } else { + db[map[node.FROM.toUpperCase()]].CHILDREN[item] = node; + } + } + + return tree; +} + +function makeList (tree) { + let list = ''; + for (let item in tree) { + list += `
  • ${item}${makeList(tree[item].CHILDREN)}
  • `; + } + return ``; +} + function summaryTemplate(db, target) { let html = "", sidebar = "", content = ""; - let keys = Object.keys(db); + let tree = makeTree(db); sidebar += MakeSidebar(db, target); $try(() => content += `${new Runic(db[target].LONG, Curlic)}`); - let tree = new Array(); - let list = ""; - for(let i = 0; i < keys.length; i++) - { - let key = keys[i]; - let value = db[key]; - list += `
  • ${key.toLowerCase()}
  • `; - - if(value.FROM == null) - { - tree[key.toLowerCase()] = new Array(); - } - else - { - } - } + let list = makeList(tree); let summary = ``; return html += sidebar + `
    ${content + summary}
    `; -} \ No newline at end of file +}