diff --git a/plugins/bookmarks-by-zaso.css b/plugins/bookmarks-by-zaso-css-desktop.css similarity index 57% rename from plugins/bookmarks-by-zaso.css rename to plugins/bookmarks-by-zaso-css-desktop.css index 9ce13c7e..aecbdea1 100644 --- a/plugins/bookmarks-by-zaso.css +++ b/plugins/bookmarks-by-zaso-css-desktop.css @@ -1,4 +1,3 @@ - #bookmarksBox *{ display:block; padding:0; @@ -11,8 +10,6 @@ text-indent:0; text-decoration:none; } - - #bookmarksBox{ margin-top:-100%; position:absolute !important; @@ -20,21 +17,15 @@ top:100px; left:100px; } -#bookmarksBox .addForm, -#bookmarksBox #bookmarksTypeBar, -#bookmarksBox h5{ +#bookmarksBox .addForm, #bookmarksBox #bookmarksTypeBar, #bookmarksBox h5{ height:28px; overflow:hidden; color:#fff; font-size:14px; } - - -#bookmarksBox #topBar, -#bookmarksBox #topBar *{ +#bookmarksBox #topBar, #bookmarksBox #topBar *{ height:15px !important; } - #bookmarksBox #topBar *{ float:left !important; } @@ -46,7 +37,6 @@ line-height:8px; cursor:move; } - #bookmarksBox #topBar .btn{ display:block; width:19px; @@ -62,50 +52,35 @@ #bookmarksBox #topBar #bookmarksMin:hover{ color:gold; } - #bookmarksBox #bookmarksTypeBar{ clear:both; } - #bookmarksBox h5{ padding:4px 0; width:114px; text-align:center; color:#788; } - #bookmarksBox h5.current{ cursor:default; - background:none; + background:0; color:#fff !important; } #bookmarksBox h5:hover{ color:gold; background:rgba(0,0,0,0); } - -#bookmarksBox #topBar .btn, -#bookmarksBox .addForm, -#bookmarksBox .handle, -#bookmarksBox #bookmarksTypeBar, -#bookmarksBox .bookmarkList li.bookmarksEmpty, -#bookmarksBox .bookmarkList li.bkmrk a, -#bookmarksBox .bookmarkList li.bkmrk:hover{ +#bookmarksBox #topBar .btn, #bookmarksBox .addForm, #bookmarksBox .handle, #bookmarksBox #bookmarksTypeBar, #bookmarksBox .bookmarkList li.bookmarksEmpty, #bookmarksBox .bookmarkList li.bkmrk a, #bookmarksBox .bookmarkList li.bkmrk:hover{ background-color:rgba(8,48,78,.85); } - -#bookmarksBox h5, -#bookmarksBox .bookmarkList li.bkmrk:hover .bookmarksLink, -#bookmarksBox .addForm *{ +#bookmarksBox h5, #bookmarksBox .bookmarkList li.bkmrk:hover .bookmarksLink, #bookmarksBox .addForm *{ background:rgba(0,0,0,.3); } - #bookmarksBox .addForm *{ display:block; float:left; padding:4px 8px 3px; } - #bookmarksBox .addForm a{ cursor:pointer; color:#20a8b1; @@ -115,13 +90,11 @@ line-height:20px; padding:4px 0 3px; } - #bookmarksBox .addForm a:hover{ background:gold; color:#000; text-decoration:none; } - #bookmarksBox .addForm input{ font-size:11px !important; color:#ffce00; @@ -132,26 +105,21 @@ -moz-box-sizing:content-box; box-sizing:content-box; } - #bookmarksBox #bkmrk_portals .addForm input{ width:147px; } - -#bookmarksBox .addForm input:hover, -#bookmarksBox .addForm input:focus{ +#bookmarksBox .addForm input:hover, #bookmarksBox .addForm input:focus{ outline:0; background:rgba(0,0,0,.6); } - -#bookmarksBox .bookmarkList > ul{ +#bookmarksBox .bookmarkList>ul{ width:231px; clear:both; list-style-type:none; color:#fff; - overflow:hidden; + overflow:hidden; max-height:550px; } - #bookmarksBox .sortable-placeholder{ background:rgba(8,48,78,.55); box-shadow:inset 1px 0 0 #20a8b1; @@ -159,69 +127,71 @@ #bookmarksBox .ui-sortable-helper{ border-top-width:1px; } - -#bookmarksBox .bookmarkList{ display:none; } -#bookmarksBox .bookmarkList.current{ display:block; } - -#bookmarksBox h5, -#bookmarksBox .addForm *, -#bookmarksBox ul li.bkmrk, -#bookmarksBox ul li.bkmrk a{ +#bookmarksBox .bookmarkList{ + display:none; +} +#bookmarksBox .bookmarkList.current{ + display:block; +} +#bookmarksBox h5, #bookmarksBox .addForm *, #bookmarksBox ul li.bkmrk, #bookmarksBox ul li.bkmrk a{ height:22px; } - -#bookmarksBox h5, -#bookmarksBox ul li.bkmrk a{ +#bookmarksBox h5, #bookmarksBox ul li.bkmrk a{ overflow:hidden; cursor:pointer; float:left; } -#bookmarksBox ul .bookmarksEmpty{ text-indent:27px; color:#eee; } -#bookmarksBox ul .bookmarksRemoveFrom{ width:19px; text-align:center; color:#fff; } -#bookmarksBox ul .bookmarksLink{ width:171px; padding:0 10px 0 8px; color:gold; } -#bookmarksBox ul .bookmarksLink.selected{ color:#03fe03; } -#bookmarksBox ul .othersBookmarks .bookmarksLink{ width:190px; } - -#bookmarksBox ul .bookmarksLink:hover{ color:#03fe03; } -#bookmarksBox ul .bookmarksRemoveFrom:hover{ color:#fff; background:#e22; } - -/************************************/ - -#bookmarksBox, -#bookmarksBox * -{ border-color:#20a8b1; border-style:solid; border-width:0; } - -#bookmarksBox #topBar -, #bookmarksBox ul .bookmarkFolder -{ border-top-width:1px; } - -#bookmarksBox #topBar -, #bookmarksBox #bookmarksTypeBar -, #bookmarksBox .addForm -, #bookmarksBox ul .bookmarkFolder .folderLabel -, #bookmarksBox ul li.bkmrk -{ border-bottom-width:1px; } - -#bookmarksBox ul .bookmarkFolder -, #bookmarksBox ul .bookmarksRemoveFrom -{ border-right-width:1px; border-left-width:1px; } - -#bookmarksBox #topBar * -, #bookmarksBox #bookmarksTypeBar * -, #bookmarksBox .addForm * -{ border-left-width:1px; } - -#bookmarksBox #topBar -, #bookmarksBox #bookmarksTypeBar -, #bookmarksBox .addForm -{ border-right-width:1px; } - -#bookmarksBox ul .othersBookmarks .bookmarksRemoveFrom -, #bookmarksBox ul .bookmarkFolder .folderLabel .bookmarksRemoveFrom -{ border-left-width:0px; } - -/************************************/ - +#bookmarksBox ul .bookmarksEmpty{ + text-indent:27px; + color:#eee; +} +#bookmarksBox ul .bookmarksRemoveFrom{ + width:19px; + text-align:center; + color:#fff; +} +#bookmarksBox ul .bookmarksLink{ + width:171px; + padding:0 10px 0 8px; + color:gold; +} +#bookmarksBox ul .bookmarksLink.selected{ + color:#03fe03; +} +#bookmarksBox ul .othersBookmarks .bookmarksLink{ + width:190px; +} +#bookmarksBox ul .bookmarksLink:hover{ + color:#03fe03; +} +#bookmarksBox ul .bookmarksRemoveFrom:hover{ + color:#fff; + background:#e22; +} +#bookmarksBox, #bookmarksBox *{ + border-color:#20a8b1; + border-style:solid; + border-width:0; +} +#bookmarksBox #topBar, #bookmarksBox ul .bookmarkFolder{ + border-top-width:1px; +} +#bookmarksBox #topBar, #bookmarksBox #bookmarksTypeBar, #bookmarksBox .addForm, #bookmarksBox ul .bookmarkFolder .folderLabel, #bookmarksBox ul li.bkmrk{ + border-bottom-width:1px; +} +#bookmarksBox ul .bookmarkFolder, #bookmarksBox ul .bookmarksRemoveFrom{ + border-right-width:1px; + border-left-width:1px; +} +#bookmarksBox #topBar *, #bookmarksBox #bookmarksTypeBar *, #bookmarksBox .addForm *{ + border-left-width:1px; +} +#bookmarksBox #topBar, #bookmarksBox #bookmarksTypeBar, #bookmarksBox .addForm{ + border-right-width:1px; +} +#bookmarksBox ul .othersBookmarks .bookmarksRemoveFrom, #bookmarksBox ul .bookmarkFolder .folderLabel .bookmarksRemoveFrom{ + border-left-width:0; +} #bookmarksShow{ display:block; position:absolute; @@ -231,22 +201,22 @@ margin-top:-36px; height:64px; cursor:pointer; - z-index:4005; - + z-index:2999; background-position:center bottom; background-repeat:no-repeat; transition:margin-top 100ms ease-in-out; background-image:url(@@INCLUDEIMAGE:plugins/bookmarks-by-zaso-logo.png@@); } #bookmarksShow:hover{ - margin-top:0px !important; + margin-top:0 !important; +} +#sidebar #portaldetails h3.title{ + width:auto; } - #bookmarkStar{ display:inline-block; - position:relative; - top:1px; - margin-right:3px; + float:left; + margin:3px 1px 0 4px; width:16px; height:15px; overflow:hidden; @@ -254,11 +224,9 @@ background-position:left center; background-repeat:no-repeat; } -#bookmarkStar:hover, -#bookmarkStar.favorite{ +#bookmarkStar:hover, #bookmarkStar.favorite{ background-position:right center; } - #bookmarksBox .handleScroll{ cursor:s-resize; width:3px; @@ -266,21 +234,16 @@ background:gold; opacity:.7; } - -/************************************/ - #bookmarksBox .bookmarkList .bookmarkFolder{ overflow:hidden; margin-top:-1px; height:auto; background:rgba(8,58,78,.7); } - #bookmarksBox .bookmarkList ul li.sortable-placeholder{ box-shadow:inset -1px 0 0 #20a8b1, inset 1px 0 0 #20a8b1, 0 -1px 0 #20a8b1; background:rgba(8,58,78,.9); } - #bookmarksBox .bookmarkList .bkmrk.ui-sortable-helper{ border-right-width:1px; border-left-width:1px; @@ -289,31 +252,21 @@ height:23px; box-shadow:inset 0 -1px 0 #20a8b1, inset 1px 0 0 #20a8b1; } - -#bookmarksBox .bookmarkList ul li.bookmarkFolder.ui-sortable-helper, -#bookmarksBox .bookmarkList ul li.othersBookmarks ul, -#bookmarksBox .bookmarkList ul li.othersBookmarks ul li.sortable-placeholder{ +#bookmarksBox .bookmarkList ul li.bookmarkFolder.ui-sortable-helper, #bookmarksBox .bookmarkList ul li.othersBookmarks ul, #bookmarksBox .bookmarkList ul li.othersBookmarks ul li.sortable-placeholder{ box-shadow:inset 0 -1px 0 #20a8b1; } - -#bookmarksBox .bookmarkList .bookmarkFolder .folderLabel .bookmarksAnchor span, -#bookmarksBox .bookmarkList .bookmarkFolder .folderLabel > span, -#bookmarksBox .bookmarkList .bookmarkFolder .folderLabel > span > span, -#bookmarksBox .bookmarkList .triangle{ - width:0px; - height:0px; +#bookmarksBox .bookmarkList .bookmarkFolder .folderLabel .bookmarksAnchor span, #bookmarksBox .bookmarkList .bookmarkFolder .folderLabel>span, #bookmarksBox .bookmarkList .bookmarkFolder .folderLabel>span>span, #bookmarksBox .bookmarkList .triangle{ + width:0; + height:0; } - -/************************************/ - #bookmarksBox .bookmarkList .bookmarkFolder .folderLabel{ overflow:visible; height:25px; cursor:pointer; background:#069; - text-indent:0px; + text-indent:0; } -#bookmarksBox .bookmarkList .bookmarkFolder .folderLabel > *{ +#bookmarksBox .bookmarkList .bookmarkFolder .folderLabel>*{ height:25px; float:left; } @@ -333,39 +286,30 @@ border-width:7px 5px 0 5px; border-color:white transparent transparent transparent; } - -/************************************************************************************************************/ - -#bookmarksBox .bookmarkList .bookmarkFolder .folderLabel > span, -#bookmarksBox .bookmarkList .bookmarkFolder .folderLabel > span > span{ +#bookmarksBox .bookmarkList .bookmarkFolder .folderLabel>span, #bookmarksBox .bookmarkList .bookmarkFolder .folderLabel>span>span{ display:none; - border-width:0px 12px 10px 0; + border-width:0 12px 10px 0; border-color:transparent #20a8b1 transparent transparent; margin:-20px 0 0; position:relative; top:21px; left:219px; } -#bookmarksBox .bookmarkList .bookmarkFolder .folderLabel > span > span{ +#bookmarksBox .bookmarkList .bookmarkFolder .folderLabel>span>span{ top:18px; - left:0px; - border-width:0px 10px 9px 0; + left:0; + border-width:0 10px 9px 0; border-color:transparent #069 transparent transparent; } -#bookmarksBox .bookmarkList .bookmarkFolder.active .folderLabel > span, -#bookmarksBox .bookmarkList .bookmarkFolder.active .folderLabel > span > span{ +#bookmarksBox .bookmarkList .bookmarkFolder.active .folderLabel>span, #bookmarksBox .bookmarkList .bookmarkFolder.active .folderLabel>span>span{ display:block; } -#bookmarksBox .bookmarkList .bookmarkFolder.active .folderLabel:hover > span > span{ +#bookmarksBox .bookmarkList .bookmarkFolder.active .folderLabel:hover>span>span{ border-color:transparent #036 transparent transparent; } - -/************************************************************************************************************/ - #bookmarksBox .bookmarkList .bookmarkFolder .folderLabel:hover .bookmarksAnchor{ background:#036; } - #bookmarksBox .bookmarkList .bookmarkFolder ul{ display:none; margin-left:19px; @@ -374,7 +318,7 @@ display:block; min-height:22px; } - #bookmarksBox .bookmarkFolder.othersBookmarks ul{ margin-left:0; -} \ No newline at end of file +} +) diff --git a/plugins/bookmarks-by-zaso-css-mobile.css b/plugins/bookmarks-by-zaso-css-mobile.css new file mode 100644 index 00000000..ac2e79f4 --- /dev/null +++ b/plugins/bookmarks-by-zaso-css-mobile.css @@ -0,0 +1,136 @@ +#sidebar #bookmarksBox{ + position:static !important; + width:auto !important; + margin:0 !important; + width:100%; +} +#sidebar #bookmarksBox .bookmarkList > ul > li, #sidebar #bookmarksBox .bookmarkList > ul > li > ul, #sidebar #bookmarksBox .bookmarkList > ul > li > ul > li{ + width:100% !important; +} +#sidebar #bookmarksBox *{ + box-shadow:none !important; + border-width:0 !important +} +#sidebar #bookmarksBox #topBar{ + display:none !important; +} +#sidebar #bookmarksBox #bookmarksTypeBar h5{ + cursor:pointer; + text-align:center; + float:left; + width:50%; + padding:7px 0; +} +#sidebar #bookmarksBox #bookmarksTypeBar h5.current{ + cursor:default; + color:#fff; +} +#sidebar #bookmarksBox #bookmarksTypeBar, #sidebar #bookmarksBox .bookmarkList .addForm{ + border-bottom:1px solid #20a8b1 !important; +} +#sidebar #bookmarksBox .bookmarkList ul li ul li.bkmrk{ + height:36px !important; + clear:both; +} +#sidebar #bookmarksBox .bookmarkList li.bookmarkFolder .folderLabel{ + height:36px; +} +#sidebar #bookmarksBox .bookmarkList li.bookmarkFolder .folderLabel a, #sidebar #bookmarksBox .bookmarkList ul li ul li.bkmrk a{ + background:none; + padding:7px 0; + height:auto; + box-shadow:inset 0 1px 0 #20a8b1 !important; +} +#sidebar #bookmarksBox .bookmarkList li.bookmarkFolder a.bookmarksRemoveFrom, #sidebar #bookmarksBox .bookmarkList li.bkmrk a.bookmarksRemoveFrom{ + box-shadow:inset 0 1px 0 #20a8b1, inset -1px 0 0 #20a8b1 !important; + width:15%; +} +#sidebar #bookmarksBox .bookmarkList li.bookmarkFolder a.bookmarksAnchor, #sidebar #bookmarksBox .bookmarkList li.bkmrk a.bookmarksLink{ + text-indent:10px; + width:85%; + height:21px /*22*/; + overflow:hidden; +} +#sidebar #bookmarksBox .bookmarkList ul li.bookmarkFolder ul{ + margin-left:0 !important; +} +#sidebar #bookmarksBox .bookmarkList ul, #bookmarksBox .bookmarkList ul li, #sidebar #bookmarksBox .bookmarkList ul li ul, #sidebar #bookmarksBox .bookmarkList ul li ul li{ + display:block !important; +} +#sidebar #bookmarksBox .bookmarkList{ + display:none !important; +} +#sidebar #bookmarksBox .bookmarkList > ul{ + border-bottom:1px solid #20a8b1 !important; + border-right:1px solid #20a8b1 !important; +} +#sidebar #bookmarksBox .bookmarkList.current{ + display:block !important; +} +#sidebar #bookmarksBox .bookmarkList .bookmarkFolder.othersBookmarks ul{ + border-top:5px solid #20a8b1 !important; +} +#sidebar #bookmarksBox .bookmarkList li.bookmarkFolder, #sidebar #bookmarksBox .bookmarkList li.bkmrk{ + box-shadow:inset 0 1px 0 #20a8b1, 1px 0 0 #20a8b1, -1px 1px 0 #20a8b1 !important; +} +#sidebar #bookmarksBox .bookmarkList li.bookmarkFolder .bkmrk.sortable-placeholder{ + height:36px !important; +} +#sidebar #bookmarksBox .bookmarkList .sortable-placeholder{ + box-shadow:inset 0 1px 0 #20a8b1 !important; +} +#sidebar #bookmarksBox .ui-sortable .ui-sortable-helper{ + border-top:0; + width:85% !important; +} +#sidebar #bookmarksBox .bookmarkList > ul{ + max-height:none; + width:85% !important; +} +#sidebar #bookmarksBox .bookmarkList li.bookmarkFolder .folderLabel{ + box-shadow:0 1px 0 #20a8b1 !important; +} +#sidebar #bookmarksBox .bookmarkList ul li.bookmarkFolder ul{ + width:85% !important; + margin-left:15% !important; +} +#sidebar #bookmarksBox .bookmarkList ul li.bookmarkFolder.othersBookmarks ul{ + width:100% !important; + margin-left:0% !important; +} +#sidebar #bookmarksShowMobile{ + text-decoration:none; + display:block !important; + padding:11px 0 9px; + text-align:center; +} +#sidebar #portaldetails{ + margin-top:25px; +} +#sidebar #bookmarksBox #bookmarksTypeBar{ + height:auto; +} +#sidebar #bookmarksBox .addForm, #sidebar #bookmarksBox .addForm *{ + height:35px; + padding:0; +} +#sidebar #bookmarksBox .addForm a{ + line-height:37px; +} +#sidebar #bookmarksBox .addForm a{ + width:25% !important; +} +#sidebar #bookmarksBox .addForm input{ + width:50% !important; + text-indent:10px; +} +#sidebar #bookmarksBox #bkmrk_portals .addForm input{ + width:75% !important; +} +#sidebar #bookmarksBox #bookmarksTypeBar h5, #sidebar #bookmarksBox .bookmarkList .addForm a{ + box-shadow:-1px 0 0 #20a8b1 !important; +} +#sidebar #bookmarksBox .bookmarkList li.bookmarkFolder ul{ + display:block !important; + min-height:37px !important; +} \ No newline at end of file diff --git a/plugins/bookmarks-by-zaso.user.js b/plugins/bookmarks-by-zaso.user.js index df2c3209..75dc8fc8 100644 --- a/plugins/bookmarks-by-zaso.user.js +++ b/plugins/bookmarks-by-zaso.user.js @@ -1,7 +1,8 @@ // ==UserScript== -// @id iitc-plugin-bookmarks@zaso +// @id iitc-plugin-bookmarks@ZasoGD // @name IITC plugin: Bookmarks for maps and portals -// @version 0.1.3.@@DATETIMEVERSION@@ +// @category Controls +// @version 0.1.55.@@DATETIMEVERSION@@ // @namespace https://github.com/jonatkins/ingress-intel-total-conversion // @updateURL @@UPDATEURL@@ // @downloadURL @@DOWNLOADURL@@ @@ -13,58 +14,66 @@ // ==/UserScript== function wrapper() { - // ensure plugin framework is there, even if iitc is not yet loaded - if(typeof window.plugin !== 'function') window.plugin = function(){}; +// ensure plugin framework is there, even if iitc is not yet loaded +if(typeof window.plugin !== 'function') window.plugin = function(){}; + +// PLUGIN START //////////////////////////////////////////////////////// - // PLUGIN START //////////////////////////////////////////////////////// // use own namespace for plugin - window.plugin.bookmarks = function(){}; + window.plugin.bookmarks = function() {}; + window.plugin.bookmarks.bkmrk_portals = {}; + window.plugin.bookmarks.bkmrk_maps = {}; + + window.plugin.bookmarks.disabledMessage; + window.plugin.bookmarks.contentStarHTML; window.plugin.bookmarks.KEY_OTHER_BKMRK = 'idOthers'; window.plugin.bookmarks.LOCAL_STORAGE_status_box = 'plugin-bookmarks-status-box'; window.plugin.bookmarks.LOCAL_STORAGE_bkmrk_portals = 'plugin-bookmarks-portals-data'; window.plugin.bookmarks.LOCAL_STORAGE_bkmrk_maps = 'plugin-bookmarks-maps-data'; - window.plugin.bookmarks.bkmrk_portals = {}; - window.plugin.bookmarks.bkmrk_maps = {}; +/*********************************************************************************************************************/ - window.plugin.bookmarks.disabledMessage; - window.plugin.bookmarks.contentStarHTML; - window.plugin.bookmarks.bkmrkBox; - window.plugin.bookmarks.bkmrkRibbon; - window.plugin.bookmarks.loadList; - window.plugin.bookmarks.setupJS; - -/***************************************************************************************************************************************************************/ - - window.plugin.bookmarks.addStarToSidebar = function(){ + //--------------------------------------------------------------------------------------- + // Append a 'star' flag in sidebar. + //--------------------------------------------------------------------------------------- + window.plugin.bookmarks.addToSidebar = function(){ if(typeof(Storage) === "undefined"){ $('#portaldetails > .imgpreview').after(plugin.bookmarks.disabledMessage); return; } - var title = $('#portaldetails > h3').text(); - $('#portaldetails > h3').html(plugin.bookmarks.contentStarHTML+title); + $('#portaldetails > h3.title').before(plugin.bookmarks.contentStarHTML); plugin.bookmarks.updateStarPortal(); } + + //--------------------------------------------------------------------------------------- + // Update the status of the star (when a portal is selected from the map/bookmarks-list) + //--------------------------------------------------------------------------------------- window.plugin.bookmarks.updateStarPortal = function(){ window.plugin.bookmarks.loadBookmarks('bkmrk_portals'); var guid = window.selectedPortal; - var list = plugin.bookmarks['bkmrk_portals']; $('#bookmarkStar').removeClass('favorite'); $('.bkmrk a.bookmarksLink.selected').removeClass('selected'); - //If current portal is into bookmarks: select bookmark portal from portals list and select the star in sideabar - for(var idFolders in list){ - for(var idBkmrk in list[idFolders]['bkmrk']){ - var portalGuid = list[idFolders]['bkmrk'][idBkmrk]['guid']; - if(guid == portalGuid){ - $('#bookmarkStar').addClass('favorite'); - $('.bkmrk#'+idBkmrk+' a.bookmarksLink').addClass('selected'); - } - } + //If current portal is into bookmarks: select bookmark portal from portals list and select the star + if(localStorage[window.plugin.bookmarks.LOCAL_STORAGE_bkmrk_portals].search(guid) != -1){ + $('#bookmarkStar').addClass('favorite'); + var list = plugin.bookmarks['bkmrk_portals']; + for(var idFolders in list){ + for(var idBkmrk in list[idFolders]['bkmrk']){ + var portalGuid = list[idFolders]['bkmrk'][idBkmrk]['guid']; + if(guid == portalGuid){ + $('.bkmrk#'+idBkmrk+' a.bookmarksLink').addClass('selected'); + } + } + } } } + + //--------------------------------------------------------------------------------------- + // Switch the status of the star + //--------------------------------------------------------------------------------------- window.plugin.bookmarks.switchStarPortal = function(){ var guid = window.selectedPortal; - //Remove portal from bookmarks + //If portal is saved in bookmarks: Remove this bookmark if($('#bookmarkStar').hasClass('favorite')){ var list = plugin.bookmarks['bkmrk_portals']; @@ -78,22 +87,29 @@ function wrapper() { } } } - //Add portal into bookmarks + //If portal isn't saved in bookmarks: Add this bookmark else{ + // Get the bookmark data (name, coordinates, portal id) from the portal link var linka = $('#portaldetails .linkdetails aside a:contains("Portal link")').attr('href'); var namePortal = $('#portaldetails h3').text(); - var ID = window.plugin.bookmarks.generateID(); - var spac = linka.split('pll='); var latlng = spac[1] ; + + // Add bookmark in the localStorage plugin.bookmarks['bkmrk_portals'][plugin.bookmarks.KEY_OTHER_BKMRK]['bkmrk'][ID] = {"guid":guid,"latlng":latlng,"label":namePortal}; + //Append the new bookmark to the map list $('#bkmrk_portals li.othersBookmarks ul').append('
  • X'+namePortal+'
  • '); } window.plugin.bookmarks.storeBookmarks('bkmrk_portals'); window.plugin.bookmarks.updateStarPortal(); } + + //--------------------------------------------------------------------------------------- + // Save a bookmark map + //--------------------------------------------------------------------------------------- window.plugin.bookmarks.addBookmarkMap = function(elem){ + // Get the coordinates and zoom level from the permalink var mapLink = $(elem).attr('href'); var pars = new RegExp('[\\?&]ll=([^&#]*)[&]z=([^&#]*)').exec(mapLink); var res = pars[1].split(','); @@ -103,21 +119,25 @@ function wrapper() { var ID = window.plugin.bookmarks.generateID(); + //Get the label | Convert some characters | Set the input (empty) var nameMap = $(elem).siblings('input').val(); nameMap = nameMap.replace(/\//g, '/').replace(/\\/g, '\').replace(/"/g, '"').replace(/"/g, '''); + $(elem).siblings('input').val(''); - if(nameMap == ''){ nameMap = ''; } - $(elem).siblings('input').val(''); - + // Add bookmark in the localStorage plugin.bookmarks['bkmrk_maps'][plugin.bookmarks.KEY_OTHER_BKMRK]['bkmrk'][ID] = {"label":nameMap,"latlng":latlng,"z":parseInt(zoom)}; plugin.bookmarks.storeBookmarks('bkmrk_maps'); + //Append the new bookmark to the map list if(nameMap==''){ nameMap = latlng+' ['+zoom+']'; } $('#bkmrk_maps li.othersBookmarks ul').append('
  • X'+nameMap+'
  • '); } -/***************************************************************************************************************************************************************/ +/*********************************************************************************************************************/ + //--------------------------------------------------------------------------------------- + // Generate an ID for the bookmark (date time + random number) + //--------------------------------------------------------------------------------------- window.plugin.bookmarks.generateID = function(){ var d = new Date(); var ID = d.getTime()+(Math.floor(Math.random()*99)+1); @@ -125,6 +145,9 @@ function wrapper() { return ID; } + //--------------------------------------------------------------------------------------- + // Switch the status folder to open/close (in the localStorage) + //--------------------------------------------------------------------------------------- window.plugin.bookmarks.openFolder = function(elem){ var typeList = $(elem).parent().parent().parent().parent('div').attr('id'); var ID = $(elem).parent().parent('li').attr('id'); @@ -135,19 +158,29 @@ function wrapper() { window.plugin.bookmarks[typeList][ID]['state'] = newFlag; window.plugin.bookmarks.storeBookmarks(typeList); } + + //--------------------------------------------------------------------------------------- + // Switch the status folder to open/close (in the localStorage) + //--------------------------------------------------------------------------------------- window.plugin.bookmarks.addFolder = function(typeList){ var ID = window.plugin.bookmarks.generateID(); var input = '#'+typeList+' .addForm input'; + //Get the label | Convert some characters | Set the input (empty) var nameFolder = $(input).val(); nameFolder = nameFolder.replace(/\//g, '/').replace(/\\/g, '\').replace(/"/g, '"').replace(/"/g, '''); if(nameFolder == ''){ nameFolder = 'Folder'; } $(input).val(''); - plugin.bookmarks[typeList][ID] = {"label":nameFolder,"state":0,"bkmrk":{}}; + // Add new folder in the localStorage + plugin.bookmarks[typeList][ID] = {"label":nameFolder,"state":1,"bkmrk":{}}; plugin.bookmarks.storeBookmarks(typeList); - - $('#'+typeList+' li.othersBookmarks').before('
  • X'+nameFolder+'
  • '); + //Append the new folder to the list + $('#'+typeList+' li.othersBookmarks').before('
  • X'+nameFolder+'
  • '); } + + //--------------------------------------------------------------------------------------- + // Remove the bookmark (from the localStorage) + //--------------------------------------------------------------------------------------- window.plugin.bookmarks.deletBookmark = function(elem){ var typeList = $(elem).parent().parent().parent().parent().parent('div').attr('id'); var ID = $(elem).parent('li').attr('id'); @@ -156,6 +189,10 @@ function wrapper() { window.plugin.bookmarks.storeBookmarks(typeList); if(typeList == 'bkmrk_portals'){ window.plugin.bookmarks.updateStarPortal(); } } + + //--------------------------------------------------------------------------------------- + // Remove the folder (from the localStorage) + //--------------------------------------------------------------------------------------- window.plugin.bookmarks.deletFolder = function(elem){ var typeList = $(elem).parent().parent().parent().parent('div').attr('id'); var ID = $(elem).parent().parent('li').attr('id'); @@ -164,6 +201,9 @@ function wrapper() { if(typeList == 'bkmrk_portals'){ window.plugin.bookmarks.updateStarPortal(); } } + //--------------------------------------------------------------------------------------- + // Saved the new sort of the folders (in the localStorage) + //--------------------------------------------------------------------------------------- window.plugin.bookmarks.sortBookmarksFolder = function(typeList){ window.plugin.bookmarks.loadBookmarks(typeList); var newArr = {}; @@ -174,6 +214,10 @@ function wrapper() { window.plugin.bookmarks[typeList] = newArr; window.plugin.bookmarks.storeBookmarks(typeList); } + + //--------------------------------------------------------------------------------------- + // Saved the new sort of the bookmarks (in the localStorage) + //--------------------------------------------------------------------------------------- window.plugin.bookmarks.sortBookmarks = function(typeList){ window.plugin.bookmarks.loadBookmarks(typeList); var list = window.plugin.bookmarks[typeList]; @@ -203,34 +247,53 @@ function wrapper() { window.plugin.bookmarks.storeBookmarks(typeList); } + //--------------------------------------------------------------------------------------- + // Update the localStorage + //--------------------------------------------------------------------------------------- window.plugin.bookmarks.storeBookmarks = function(typeList){ var bookmarksObject = {}; bookmarksObject[typeList] = plugin.bookmarks[typeList]; var bookmarksObjectJSON = JSON.stringify(bookmarksObject); localStorage[plugin.bookmarks['LOCAL_STORAGE_'+typeList]] = bookmarksObjectJSON; } + + //--------------------------------------------------------------------------------------- + // Load the localStorage + //--------------------------------------------------------------------------------------- window.plugin.bookmarks.loadBookmarks = function(typeList){ var bookmarksObjectJSON = localStorage[plugin.bookmarks['LOCAL_STORAGE_'+typeList]]; if(!bookmarksObjectJSON) return; var bookmarksObject = JSON.parse(bookmarksObjectJSON); plugin.bookmarks[typeList] = bookmarksObject[typeList]; } + + //--------------------------------------------------------------------------------------- + // Load the bookmarks + //--------------------------------------------------------------------------------------- window.plugin.bookmarks.loadList = function(typeList){ window.plugin.bookmarks.loadBookmarks(typeList); var element = ''; + var elementTemp = ''; + var elementExc = ''; + // For each folder var list = window.plugin.bookmarks[typeList]; for(var idFolders in list){ var folders = list[idFolders]; var active = ''; + // Create a label and a anchor for the sortable var folderLabel = 'X'; folderLabel += ''+folders['label']+''; if(folders['state']){ active = ' active'; } - if(idFolders == window.plugin.bookmarks.KEY_OTHER_BKMRK){ folderLabel = ''; active= ' othersBookmarks active' } - element += '
  • '+folderLabel+''; + + //Add folder 'Others' in last position + if(idFolders != window.plugin.bookmarks.KEY_OTHER_BKMRK){ element += elementTemp; } + else{ elementExc = elementTemp; } } + element += elementExc; + + // Append all folders and bookmarks $('#'+typeList+' ul').html(element); } -/***************************************************************************************************************************************************************/ +/*********************************************************************************************************************/ + //--------------------------------------------------------------------------------------- + // Append the stylesheet + //--------------------------------------------------------------------------------------- + window.plugin.bookmarks.setupCSS = function(){ + $('