Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Unified Diff: chrome/browser/resources/bookmark_manager/js/main.js

Issue 8314017: Fix minor WebUI dialog issues, mostly with bookmark management (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Tweaks from flackr CR Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/ui/browser.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/bookmark_manager/js/main.js
diff --git a/chrome/browser/resources/bookmark_manager/js/main.js b/chrome/browser/resources/bookmark_manager/js/main.js
index ff5f848a28f24a413d9847bb5ecbb18e122c874d..54f03da3e0b7043c4b49ccc1f706ae8216c209e7 100644
--- a/chrome/browser/resources/bookmark_manager/js/main.js
+++ b/chrome/browser/resources/bookmark_manager/js/main.js
@@ -130,26 +130,29 @@ function addOneShotEventListener(node, name, handler) {
}
/**
+ * Updates the location hash to reflect the current state of the application.
+ */
+function updateHash() {
+ window.location.hash = tree.selectedItem.bookmarkId;
+}
+
+/**
* Navigates to a bookmark ID.
* @param {string} id The ID to navigate to.
* @param {boolean=} opt_updateHashNow Whether to immediately update the
* location.hash. If false then it is updated in a timeout.
*/
function navigateTo(id, opt_updateHashNow) {
- console.info('navigateTo', 'from', window.location.hash, 'to', id);
+ // console.info('navigateTo', 'from', window.location.hash, 'to', id);
// Update the location hash using a timer to prevent reentrancy. This is how
// often we add history entries and the time here is a bit arbitrary but was
// picked as the smallest time a human perceives as instant.
- function f() {
- window.location.hash = tree.selectedItem.bookmarkId;
- }
-
clearTimeout(navigateTo.timer_);
if (opt_updateHashNow)
- f();
+ updateHash();
else
- navigateTo.timer_ = setTimeout(f, 250);
+ navigateTo.timer_ = setTimeout(updateHash, 250);
updateParentId(id);
}
@@ -174,41 +177,42 @@ function processHash() {
}
var valid = false;
- if (/^[ae]=/.test(id)) {
- var command = id[0];
+ if (/^e=/.test(id)) {
id = id.slice(2);
- if (command == 'e') {
- // If hash contains e= edit the item specified.
- chrome.bookmarks.get(id, function(bookmarkNodes) {
- // Verify the node to edit is a valid node.
- if (!bookmarkNodes || bookmarkNodes.length != 1)
- return;
- var bookmarkNode = bookmarkNodes[0];
- // After the list reloads edit the desired bookmark.
- var editBookmark = function(e) {
- var index = list.dataModel.findIndexById(bookmarkNode.id);
- if (index != -1) {
- var sm = list.selectionModel;
- sm.anchorIndex = sm.leadIndex = sm.selectedIndex = index;
- scrollIntoViewAndMakeEditable(index);
- }
- }
- if (list.parentId == bookmarkNode.parentId)
- editBookmark();
- else {
- // Navigate to the parent folder, once it's loaded edit the bookmark.
- addOneShotEventListener(list, 'load', editBookmark);
- updateParentId(bookmarkNode.parentId);
+ // If hash contains e= edit the item specified.
+ chrome.bookmarks.get(id, function(bookmarkNodes) {
+ // Verify the node to edit is a valid node.
+ if (!bookmarkNodes || bookmarkNodes.length != 1)
+ return;
+ var bookmarkNode = bookmarkNodes[0];
+
+ // After the list reloads edit the desired bookmark.
+ var editBookmark = function(e) {
+ var index = list.dataModel.findIndexById(bookmarkNode.id);
+ if (index != -1) {
+ var sm = list.selectionModel;
+ sm.anchorIndex = sm.leadIndex = sm.selectedIndex = index;
+ scrollIntoViewAndMakeEditable(index);
}
- });
- // We handle the two cases of navigating to the bookmark to be edited
- // above, don't run the standard navigation code below.
- return;
- } else if (command == 'a') {
- // Once the parent folder is loaded add a page bookmark.
- addOneShotEventListener(list, 'load', addPage);
- }
+ };
+
+ if (list.parentId == bookmarkNode.parentId) {
+ // Clear the e= from the hash so that future attemps to edit the same
+ // entry will show up as a hash change.
+ updateHash();
+ editBookmark();
+ } else {
+ // Navigate to the parent folder (which will update the hash), once
+ // it's loaded edit the bookmark.
+ addOneShotEventListener(list, 'load', editBookmark);
+ updateParentId(bookmarkNode.parentId);
+ }
+ });
+
+ // We handle the two cases of navigating to the bookmark to be edited
+ // above, don't run the standard navigation code below.
+ return;
} else if (/^q=/.test(id)) {
// In case we got a search hash update the text input and the
// bmm.treeLookup to use the new id.
@@ -233,6 +237,7 @@ function processHash() {
// We listen to hashchange so that we can update the currently shown folder when
// the user goes back and forward in the history.
window.onhashchange = function(e) {
+ // console.info('onhashchange', e.oldURL, e.newURL);
processHash();
};
« no previous file with comments | « no previous file | chrome/browser/ui/browser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698