| 1 | var Storage = require("./storage"); |
| 2 | class StorageTree extends Storage{ |
| 3 | children(parentId = 0) { |
| 4 | var all = this._data.data; |
| 5 | |
| 6 | var loaded = this._data.data.filter(function(entry) { |
| 7 | return parentId == entry.parent; |
| 8 | }); |
| 9 | |
| 10 | var search = {}; |
| 11 | loaded.forEach(function(value){ |
| 12 | search[value.id] = value; |
| 13 | }); |
| 14 | |
| 15 | all.forEach(function(task){ |
| 16 | if(search[task.parent]) { |
| 17 | search[task.parent]["$has_child"] = true; |
| 18 | } |
| 19 | }); |
| 20 | |
| 21 | var links = this._data.links.filter(function(entry) { |
| 22 | return (search[entry.source] || search[entry.target]); |
| 23 | }); |
| 24 | |
| 25 | return {data: loaded, links: links}; |
| 26 | } |
| 27 | } |
| 28 | |
| 29 | module.exports = StorageTree; |