[PALEMOON] Align the places component with the updated PlacesUtils API

This commit is contained in:
JustOff 2018-11-16 21:57:07 +02:00 • committed by Roy Tam
commit 12a5dc96b5
2 changed files with 34 additions and 23 deletions

View file

@ -146,14 +146,21 @@ this.PlacesUIUtils = {
* annotations are synced from the old one.
* @see this._copyableAnnotations for the list of copyable annotations.
*/
_getFolderCopyTransaction:
function PUIU__getFolderCopyTransaction(aData, aContainer, aIndex)
{
function getChildItemsTransactions(aChildren)
{
_getFolderCopyTransaction(aData, aContainer, aIndex) {
function getChildItemsTransactions(aRoot) {
let transactions = [];
let index = aIndex;
aChildren.forEach(function (node, i) {
for (let i = 0; i < aRoot.childCount; ++i) {
let child = aRoot.getChild(i);
// Temporary hacks until we switch to PlacesTransactions.jsm.
let isLivemark =
PlacesUtils.annotations.itemHasAnnotation(child.itemId,
PlacesUtils.LMANNO_FEEDURI);
let [node] = PlacesUtils.unwrapNodes(
PlacesUtils.wrapNode(child, PlacesUtils.TYPE_X_MOZ_PLACE, isLivemark),
PlacesUtils.TYPE_X_MOZ_PLACE
);
// Make sure that items are given the correct index, this will be
// passed by the transaction manager to the backend for the insertion.
// Insertion behaves differently for DEFAULT_INDEX (append).
@ -184,19 +191,21 @@ this.PlacesUIUtils = {
else {
throw new Error("Unexpected item under a bookmarks folder");
}
});
}
return transactions;
}
if (aContainer == PlacesUtils.tagsFolderId) { // Copying a tag folder.
if (aContainer == PlacesUtils.tagsFolderId) { // Copying into a tag folder.
let transactions = [];
if (aData.children) {
aData.children.forEach(function(aChild) {
if (!aData.livemark && aData.type == PlacesUtils.TYPE_X_MOZ_PLACE_CONTAINER) {
let {root} = PlacesUtils.getFolderContents(aData.id, false, false);
let urls = PlacesUtils.getURLsForContainerNode(root);
root.containerOpen = false;
for (let { uri } of urls) {
transactions.push(
new PlacesTagURITransaction(PlacesUtils._uri(aChild.uri),
[aData.title])
new PlacesTagURITransaction(NetUtil.newURI(uri), [aData.title])
);
});
}
}
return new PlacesAggregatedTransaction("addTags", transactions);
}
@ -205,7 +214,10 @@ this.PlacesUIUtils = {
return this._getLivemarkCopyTransaction(aData, aContainer, aIndex);
}
let transactions = getChildItemsTransactions(aData.children);
let {root} = PlacesUtils.getFolderContents(aData.id, false, false);
let transactions = getChildItemsTransactions(root);
root.containerOpen = false;
if (aData.dateAdded) {
transactions.push(
new PlacesEditItemDateAddedTransaction(null, aData.dateAdded)