| Index: chrome/browser/resources/md_bookmarks/util.js
|
| diff --git a/chrome/browser/resources/md_bookmarks/util.js b/chrome/browser/resources/md_bookmarks/util.js
|
| index 9c1e942146e8e072d41d79e71f22a249c8983f79..02090175ca79b9446817cfa28e037ea4948d6836 100644
|
| --- a/chrome/browser/resources/md_bookmarks/util.js
|
| +++ b/chrome/browser/resources/md_bookmarks/util.js
|
| @@ -48,12 +48,52 @@ cr.define('bookmarks.util', function() {
|
| return nodeMap;
|
| }
|
|
|
| + function initializeSidebar(rootNodeId, nodes) {
|
| + var folders = [];
|
| +
|
| + var calculateFoldersBelow = function(nodeId, depth) {
|
| + var node = nodes[nodeId];
|
| + if (!node.children)
|
| + return;
|
| +
|
| + folders.push({
|
| + id: node.id,
|
| + depth: depth,
|
| + visible: true,
|
| + open: true,
|
| + });
|
| + node.children.forEach(function(childId) {
|
| + calculateFoldersBelow(childId, depth + 1);
|
| + });
|
| + };
|
| +
|
| + calculateFoldersBelow(rootNodeId, -1);
|
| +
|
| + // Remove the root node.
|
| + folders.shift();
|
| + return {
|
| + folders: folders,
|
| + folderMap: createFolderMap(folders),
|
| + };
|
| + }
|
| +
|
| + /**
|
| + * @param {!Array<SidebarFolder>} folders
|
| + * @return {!Object<string, number>}
|
| + */
|
| + function createFolderMap(folders) {
|
| + var folderMap = {};
|
| + folders.forEach(function(folder, idx) {
|
| + folderMap[folder.id] = idx;
|
| + });
|
| + return folderMap;
|
| + };
|
| +
|
| /** @return {BookmarksPageState} */
|
| function createEmptyState() {
|
| return {
|
| nodes: {},
|
| selectedFolder: '0',
|
| - closedFolders: {},
|
| search: {
|
| term: '',
|
| inProgress: false,
|
| @@ -64,12 +104,18 @@ cr.define('bookmarks.util', function() {
|
| anchor: null,
|
| count: 0,
|
| },
|
| + sidebar: {
|
| + folders: [],
|
| + folderMap: {},
|
| + },
|
| };
|
| }
|
|
|
| return {
|
| createEmptyState: createEmptyState,
|
| + createFolderMap: createFolderMap,
|
| getDisplayedList: getDisplayedList,
|
| + initializeSidebar: initializeSidebar,
|
| normalizeNodes: normalizeNodes,
|
| };
|
| });
|
|
|