243
243
this.folders_to_reorder[doc._id] = doc.children;
246
var site_uri = ioService.newURI(doc.site_uri, null, null);
246
var site_uri = doc.site_uri ?
247
ioService.newURI(doc.site_uri, null, null) : null;
247
248
var feed_uri = ioService.newURI(doc.feed_uri, null, null);
248
249
item_id = livemarkService.createLivemark(
249
250
parent_id, doc.title, site_uri, feed_uri,
294
295
this.folders_to_reorder[doc._id] = doc.children;
297
var site_uri = ioService.newURI(doc.site_uri, null, null);
298
var site_uri = doc.site_uri ?
299
ioService.newURI(doc.site_uri, null, null) : null;
298
300
var feed_uri = ioService.newURI(doc.feed_uri, null, null);
299
301
bookmarksService.setItemTitle(item_id, doc.title);
300
302
livemarkService.setSiteURI(item_id, site_uri);
375
377
this.folders_to_reorder = {}
380
exportItem: function(item_guid) {
381
var item_id = this.guid_to_id(item_guid);
382
var item_type = null, deleted = false;
384
// Get the item type, which also checks whether the item exists.
386
item_type = bookmarksService.getItemType(item_id);
394
var doc = this.couch.open(item_guid);
397
this.couch.deleteDoc(doc);
399
delete this.guid_item_map[item_guid];
405
doc = { _id: item_guid };
409
var _setattr = function(doc, attr, value) {
410
if (attr == 'children') {
411
// Special handling, since 'children' is an array
412
if (!doc[attr] || value.join('\n') != doc[attr].join('\n')) {
416
} else if (doc[attr] != value) {
422
if (!doc.application_annotations)
423
doc.application_annotations = {};
424
if (!doc.application_annotations.Firefox)
425
doc.application_annotations.Firefox = {};
426
_setattr(doc.application_annotations.Firefox, "profile", this.profile);
428
var parent_id = bookmarksService.getFolderIdForItem(item_id);
430
var parent_guid = this.guid_from_id(parent_id);
431
_setattr(doc, "parent_guid", parent_guid);
434
case bookmarksService.TYPE_BOOKMARK:
435
_setattr(doc, "record_type", TYPE_BOOKMARK);
436
_setattr(doc, "uri", bookmarksService.getBookmarkURI(item_id).spec);
437
_setattr(doc, "title", bookmarksService.getItemTitle(item_id));
439
case bookmarksService.TYPE_FOLDER:
440
_setattr(doc, "title", bookmarksService.getItemTitle(item_id));
441
if (livemarkService.isLivemark(item_id)) {
442
_setattr(doc, "record_type", TYPE_FEED);
443
var site_uri = livemarkService.getSiteURI(item_id);
445
_setattr(doc, "site_uri", site_uri.spec);
447
doc, "feed_uri", livemarkService.getFeedURI(item_id).spec);
449
_setattr(doc, "record_type", TYPE_FOLDER);
451
this.guid_from_id(child_id)
452
for each (child_id in this.get_folder_children(item_id))];
453
_setattr(doc, "children", children);
456
case bookmarksService.TYPE_SEPARATOR:
457
_setattr(doc, "record_type", TYPE_SEPARATOR);
460
dump("Can not handle item " + item_id + " of type " +
465
this.couch.save(doc);