diff options
author | feldstein@chromium.org <feldstein@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-29 00:47:07 +0000 |
---|---|---|
committer | feldstein@chromium.org <feldstein@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-29 00:47:07 +0000 |
commit | 480b261a93aff4ef48d44709b87d6daa3bb4d029 (patch) | |
tree | 1007a6cb69bbfe296320c182b08c7dd89aff979e /chrome/test/data | |
parent | cce5f9386ff9246b34b52a953815ba1059f53e24 (diff) | |
download | chromium_src-480b261a93aff4ef48d44709b87d6daa3bb4d029.zip chromium_src-480b261a93aff4ef48d44709b87d6daa3bb4d029.tar.gz chromium_src-480b261a93aff4ef48d44709b87d6daa3bb4d029.tar.bz2 |
Add import/export to the JS bookmark manager
Adds the import and export commands to the bookmark manager. Also respects the importBegan/Ended events so we don't churn when an import is going on.
BUG=none
TEST=Do some imports and exports
Review URL: http://codereview.chromium.org/556066
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37472 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test/data')
-rw-r--r-- | chrome/test/data/extensions/bookmarkmanager/js/bmm/bookmarktree.js | 11 | ||||
-rw-r--r-- | chrome/test/data/extensions/bookmarkmanager/main.html | 27 |
2 files changed, 36 insertions, 2 deletions
diff --git a/chrome/test/data/extensions/bookmarkmanager/js/bmm/bookmarktree.js b/chrome/test/data/extensions/bookmarkmanager/js/bmm/bookmarktree.js index b511796..df83b77 100644 --- a/chrome/test/data/extensions/bookmarkmanager/js/bmm/bookmarktree.js +++ b/chrome/test/data/extensions/bookmarkmanager/js/bmm/bookmarktree.js @@ -124,6 +124,17 @@ cr.define('bmm', function() { } }, + insertSubtree:function(folder) { + if (!bmm.isFolder(folder)) + return; + var children = folder.children; + this.handleCreated(folder.id, folder); + for(var i = 0; i < children.length; i++) { + var child = children[i]; + this.insertSubtree(child); + } + }, + /** * Returns the bookmark node with the given ID. The tree only maintains * folder nodes. diff --git a/chrome/test/data/extensions/bookmarkmanager/main.html b/chrome/test/data/extensions/bookmarkmanager/main.html index 5ab265e41..85ff294 100644 --- a/chrome/test/data/extensions/bookmarkmanager/main.html +++ b/chrome/test/data/extensions/bookmarkmanager/main.html @@ -409,7 +409,7 @@ function navigateTo(id) { function updateParentId(id) { list.parentId = id; if (id in bmm.treeLookup) - bmm.treeLookup[id].selected = true; + tree.selectedItem = bmm.treeLookup[id]; } // We listen to hashchange so that we can update the currently shown folder when @@ -546,6 +546,21 @@ function handleRemoved(id, removeInfo) { bookmarkCache.remove(id); } +function handleImportBegan() { + chrome.bookmarks.onCreated.removeListener(handleCreated); +} + +function handleImportEnded() { + chrome.bookmarks.onCreated.addListener(handleCreated); + chrome.bookmarks.getTree(function(node) { + var otherBookmarks = node[0].children[1].children; + var importedFolder = otherBookmarks[otherBookmarks.length - 1]; + var importId = importedFolder.id; + tree.insertSubtree(importedFolder); + navigateTo(importId) + }); +} + /** * Adds the listeners for the bookmark model change events. */ @@ -555,6 +570,10 @@ function addBookmarkModelListeners() { chrome.bookmarks.onCreated.addListener(handleCreated); chrome.bookmarks.onMoved.addListener(handleMoved); chrome.bookmarks.onRemoved.addListener(handleRemoved); + chrome.experimental.bookmarkManager.onImportBegan.addListener( + handleImportBegan); + chrome.experimental.bookmarkManager.onImportEnded.addListener( + handleImportEnded); } /** @@ -593,7 +612,6 @@ tree.addEventListener('load', function(e) { tree.buildTree(); addBookmarkModelListeners(); - </script> <script> @@ -1346,6 +1364,11 @@ document.addEventListener('command', function(e) { var command = e.command; var commandId = command.id; console.log(command.id, 'executed', 'on', e.target); + if (commandId == 'import-menu-command') { + chrome.experimental.bookmarkManager.import(); + } else if (command.id == 'export-menu-command') { + chrome.experimental.bookmarkManager.export(); + } }); /** |