diff --git a/plugins/bookmarks-by-zaso.user.js b/plugins/bookmarks-by-zaso.user.js index f5fdab4d..5eae4362 100644 --- a/plugins/bookmarks-by-zaso.user.js +++ b/plugins/bookmarks-by-zaso.user.js @@ -30,7 +30,7 @@ // use own namespace for plugin window.plugin.bookmarks = function() {}; - window.plugin.bookmarks.SYNC_DELAY = 5000; + window.plugin.bookmarks.SYNC_DELAY = 5; window.plugin.bookmarks.KEY_OTHER_BKMRK = 'idOthers'; window.plugin.bookmarks.KEY_STORAGE = 'plugin-bookmarks'; @@ -322,12 +322,12 @@ } // Switch the status of the star - window.plugin.bookmarks.switchStarPortal = function() { - var guid = window.selectedPortal; + window.plugin.bookmarks.switchStarPortal = function(guid) { + if(guid == undefined) guid = window.selectedPortal; // If portal is saved in bookmarks: Remove this bookmark - if($('.bkmrksStar').hasClass('favorite')) { - var bkmrkData = window.plugin.bookmarks.findByGuid(guid); + var bkmrkData = window.plugin.bookmarks.findByGuid(guid); + if(bkmrkData) { var list = window.plugin.bookmarks.bkmrksObj['portals']; delete list[bkmrkData['id_folder']]['bkmrk'][bkmrkData['id_bookmark']]; $('.bkmrk#'+bkmrkData['id_bookmark']+'').remove(); @@ -342,24 +342,23 @@ else{ // Get portal name and coordinates var p = window.portals[guid]; - var d = p.options.data; - var label = d.title; - var lat = p.getLatLng().lat; - var lng = p.getLatLng().lng; - var latlng = lat+','+lng; - - var ID = window.plugin.bookmarks.generateID(); - - // Add bookmark in the localStorage - window.plugin.bookmarks.bkmrksObj['portals'][window.plugin.bookmarks.KEY_OTHER_BKMRK]['bkmrk'][ID] = {"guid":guid,"latlng":latlng,"label":label}; - - window.plugin.bookmarks.saveStorage(); - window.plugin.bookmarks.refreshBkmrks(); - window.runHooks('pluginBkmrksEdit', {"target": "portal", "action": "add", "id": ID}); - console.log('BOOKMARKS: added portal '+ID); + var ll = p.getLatLng(); + plugin.bookmarks.addPortalBookmark(guid, ll.lat+','+ll.lng, p.options.data.title); } } + plugin.bookmarks.addPortalBookmark = function(guid, latlng, label) { + var ID = window.plugin.bookmarks.generateID(); + + // Add bookmark in the localStorage + window.plugin.bookmarks.bkmrksObj['portals'][window.plugin.bookmarks.KEY_OTHER_BKMRK]['bkmrk'][ID] = {"guid":guid,"latlng":latlng,"label":label}; + + window.plugin.bookmarks.saveStorage(); + window.plugin.bookmarks.refreshBkmrks(); + window.runHooks('pluginBkmrksEdit', {"target": "portal", "action": "add", "id": ID, "guid": guid}); + console.log('BOOKMARKS: added portal '+ID); + } + // Add BOOKMARK/FOLDER window.plugin.bookmarks.addElement = function(elem, type) { var ID = window.plugin.bookmarks.generateID(); @@ -1031,7 +1030,7 @@ window.plugin.bookmarks.editStar = function(data) { if(data.target === 'portal') { if(data.action === 'add') { - var guid = window.selectedPortal; + var guid = data.guid; var latlng = window.portals[guid].getLatLng(); var lbl = window.portals[guid].options.data.title; var starInLayer = window.plugin.bookmarks.starLayers[data.guid]; @@ -1053,7 +1052,61 @@ window.plugin.bookmarks.setupCSS = function() { $('