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 efab6e96b883df797ce046c817ccc8074953e969..e67d7a316e408c70d326146a732ad3d681222fbe 100644 |
--- a/chrome/browser/resources/bookmark_manager/js/main.js |
+++ b/chrome/browser/resources/bookmark_manager/js/main.js |
@@ -1029,13 +1029,27 @@ function newFolder(opt_target) { |
performGlobalUndo = null; // This can't be undone, so disable global undo. |
var parentId = computeParentFolderForNewItem(); |
- |
+ var newIndex = ''; |
Bernhard Bauer
2014/12/22 11:58:20
|newIndex| is supposed to be an integer. Just beca
Deepak
2014/12/23 04:27:48
Done.
|
+ var selectedItem = bmm.list.selectedItem; |
// Callback is called after tree and list data model updated. |
function createFolder(callback) { |
+ if (selectedItem && document.activeElement != bmm.tree) { |
Bernhard Bauer
2014/12/22 11:58:20
The indentation is way off in this CL. I would sug
Deepak
2014/12/23 04:27:47
Can you please tell me in specific about this.
Bernhard Bauer
2014/12/23 11:54:36
The issues are fixed now.
|
+ if (!bmm.isFolder(selectedItem)) |
+ newIndex = 1 + bmm.list.dataModel.indexOf(selectedItem); |
Bernhard Bauer
2014/12/22 11:58:20
It's more idiomatic to put the constant summand as
Deepak
2014/12/23 04:27:47
Done.
|
+ } |
+ if (newIndex != '') { |
chrome.bookmarks.create({ |
title: loadTimeData.getString('new_folder_name'), |
- parentId: parentId |
+ parentId: parentId, |
+ index: newIndex |
}, callback); |
+ } else { |
+ // As create bookmark folder does not create bookmark node for empty index. |
Bernhard Bauer
2014/12/22 11:58:21
I have no idea what this comment is supposed to me
Deepak
2014/12/23 04:27:48
This part of code is not required after taking new
|
+ chrome.bookmarks.create({ |
+ title: loadTimeData.getString('new_folder_name'), |
+ parentId: parentId |
+ }, callback); |
+ } |
} |
if ((opt_target || document.activeElement) == bmm.tree) { |
@@ -1049,10 +1063,12 @@ function newFolder(opt_target) { |
function editNewFolderInList() { |
createFolder(function() { |
- var index = bmm.list.dataModel.length - 1; |
+ var length = bmm.list.dataModel.length - 1; |
+ if (newIndex != '' && newIndex <= length) |
Bernhard Bauer
2014/12/22 11:58:20
This callback will be called asynchronously. What
Deepak
2014/12/23 04:27:47
I understand.
Can you please tell me some way to r
Bernhard Bauer
2014/12/23 11:54:36
I don't know how to reproduce this, but the onus i
|
+ length = newIndex; |
Bernhard Bauer
2014/12/22 11:58:20
Why do you rename this variable to |length|, but t
Deepak
2014/12/23 04:27:48
Done.
|
var sm = bmm.list.selectionModel; |
- sm.anchorIndex = sm.leadIndex = sm.selectedIndex = index; |
- scrollIntoViewAndMakeEditable(index); |
+ sm.anchorIndex = sm.leadIndex = sm.selectedIndex = length; |
+ scrollIntoViewAndMakeEditable(length); |
}); |
} |
@@ -1080,16 +1096,25 @@ function scrollIntoViewAndMakeEditable(index) { |
*/ |
function addPage() { |
var parentId = computeParentFolderForNewItem(); |
- |
+ var newIndex = ''; |
+ var selectedItem = bmm.list.selectedItem; |
function editNewBookmark() { |
+ if (selectedItem && document.activeElement != bmm.tree) { |
+ if (!bmm.isFolder(selectedItem)) |
+ newIndex = 1 + bmm.list.dataModel.indexOf(selectedItem); |
+ } |
+ |
var fakeNode = { |
title: '', |
url: '', |
parentId: parentId, |
+ index: newIndex, |
id: 'new' |
}; |
var dataModel = bmm.list.dataModel; |
var length = dataModel.length; |
+ if (newIndex != '' && newIndex <= length) |
+ length = newIndex; |
Bernhard Bauer
2014/12/22 11:58:20
Same here; this is not really a length anymore, it
Deepak
2014/12/23 04:27:47
Done.
|
dataModel.splice(length, 0, fakeNode); |
var sm = bmm.list.selectionModel; |
sm.anchorIndex = sm.leadIndex = sm.selectedIndex = length; |