From 7bfd6bfbb9f6bbe012855f129e9c05c7de75f82e Mon Sep 17 00:00:00 2001 From: Giacinto Garcea Date: Mon, 5 May 2014 22:33:08 +0200 Subject: [PATCH 1/3] Bookmarks 2.9 - rename a folder (bookmarks opt); - for IITCm: move a bookmark into a folder; --- plugins/bookmarks-by-zaso.user.js | 135 ++++++++++++++++++++++++++++-- plugins/bookmarks-css.css | 69 ++++++++++++--- 2 files changed, 188 insertions(+), 16 deletions(-) diff --git a/plugins/bookmarks-by-zaso.user.js b/plugins/bookmarks-by-zaso.user.js index 54164f42..89eda9e9 100644 --- a/plugins/bookmarks-by-zaso.user.js +++ b/plugins/bookmarks-by-zaso.user.js @@ -2,7 +2,7 @@ // @id iitc-plugin-bookmarks@ZasoGD // @name IITC plugin: Bookmarks for maps and portals // @category Controls -// @version 0.2.8.@@DATETIMEVERSION@@ +// @version 0.2.9.@@DATETIMEVERSION@@ // @namespace https://github.com/jonatkins/ingress-intel-total-conversion // @updateURL @@UPDATEURL@@ // @downloadURL @@DOWNLOADURL@@ @@ -219,7 +219,7 @@ // Create a label and a anchor for the sortable var folderDelete = 'X'; - var folderName = ''+folders['label']+''; + var folderName = ''+folders['label']+'';//'; var folderLabel = folderDelete+folderName; if(folders['state']) { active = ' open'; } @@ -235,6 +235,12 @@ for(var idBkmrk in fold) { var btn_link; var btn_remove = 'X'; + + var btn_move = ''; + if(window.plugin.bookmarks.isSmart) { + btn_move = '='; + } + var bkmrk = fold[idBkmrk]; var label = bkmrk['label']; var latlng = bkmrk['latlng']; @@ -250,7 +256,7 @@ var btn_link = ''+label+''; } // Create the bookmark - elementTemp += '
  • '+btn_remove+btn_link+'
  • '; + elementTemp += '
  • '+btn_remove+btn_move+btn_link+'
  • '; } elementTemp += ''; @@ -427,9 +433,47 @@ } window.plugin.bookmarks.deleteMode = function() { - $('#bookmarksBox').toggleClass('deleteMode'); + $('#bookmarksBox').removeClass('moveMode').toggleClass('deleteMode'); } + window.plugin.bookmarks.moveMode = function() { + $('#bookmarksBox').removeClass('deleteMode').toggleClass('moveMode'); + } + + window.plugin.bookmarks.mobileSortIDb = ''; + window.plugin.bookmarks.mobileSortIDf = ''; + window.plugin.bookmarks.dialogMobileSort = function(type, elem){ + window.plugin.bookmarks.mobileSortIDb = $(elem).parent('li.bkmrk').attr('id'); + window.plugin.bookmarks.mobileSortIDf = $(elem).parent('li.bkmrk').parent('ul').parent('li.bookmarkFolder').attr('id'); + + if(type === 'maps'){ type = 1; } + else if(type === 'portals'){ type = 2; } + + dialog({ + html: window.plugin.bookmarks.dialogLoadListFolders('bookmarksDialogMobileSort', 'window.plugin.bookmarks.mobileSort', true, type), + dialogClass: 'ui-dialog-bkmrksSet-copy', + title: 'Bookmarks - Move Bookmark' + }); + } + + window.plugin.bookmarks.mobileSort = function(elem){ + var type = $(elem).data('type'); + var idBkmrk = window.plugin.bookmarks.mobileSortIDb; + var newFold = $(elem).data('id'); + var oldFold = window.plugin.bookmarks.mobileSortIDf; + + var Bkmrk = window.plugin.bookmarks.bkmrksObj[type][oldFold].bkmrk[idBkmrk]; + + delete window.plugin.bookmarks.bkmrksObj[type][oldFold].bkmrk[idBkmrk]; + + window.plugin.bookmarks.bkmrksObj[type][newFold].bkmrk[idBkmrk] = Bkmrk; + + window.plugin.bookmarks.saveStorage(); + window.plugin.bookmarks.refreshBkmrks(); + window.runHooks('pluginBkmrksEdit', {"target": "bookmarks", "action": "sort"}); + window.plugin.bookmarks.mobileSortIDf = newFold; + console.log('Move Bookmarks '+type+' ID:'+idBkmrk+' from folder ID:'+oldFold+' to folder ID:'+newFold); + } /***************************************************************************************************************************************************************/ @@ -613,6 +657,77 @@ } } + window.plugin.bookmarks.dialogLoadListFolders = function(idBox, clickAction, showOthersF, scanType/*0 = maps&portals; 1 = maps; 2 = portals*/) { + var list = JSON.parse(localStorage['plugin-bookmarks']); + var listHTML = ''; + var foldHTML = ''; + var elemGenericFolder = ''; + + // For each type and folder + for(var type in list){ + if(scanType === 0 || (scanType === 1 && type === 'maps') || (scanType === 2 && type === 'portals')){ + listHTML += '

    '+type+':

    '; + + for(var idFolders in list[type]) { + var label = list[type][idFolders]['label']; + + // Create a folder + foldHTML = '
    '+label+'
    '; + + if(idFolders !== window.plugin.bookmarks.KEY_OTHER_BKMRK) { + listHTML += foldHTML; + } else { + if(showOthersF === true){ + elemGenericFolder = foldHTML; + } + } + } + } + listHTML += elemGenericFolder; + elemGenericFolder = ''; + } + + // Append all folders + var r = '
    ' + + listHTML + + '
    '; + + return r; + } + + window.plugin.bookmarks.renameFolder = function(elem){ + var type = $(elem).data('type'); + var idFold = $(elem).data('id'); + + var promptAction = prompt('Insert a new name.', ''); + if(promptAction !== null && promptAction !== '') { + try { + var newName = window.plugin.bookmarks.escapeHtml(promptAction); + + window.plugin.bookmarks.bkmrksObj[type][idFold].label = newName; + $('#bookmarksDialogRenameF #'+idFold).text(newName); + window.plugin.bookmarks.saveStorage(); + window.plugin.bookmarks.refreshBkmrks(); + window.runHooks('pluginBkmrksEdit', {"target": "all", "action": "import"}); + + console.log('BOOKMARKS: renamed bookmarks folder'); + window.plugin.bookmarks.optAlert('Successful. '); + } catch(e) { + console.warn('BOOKMARKS: failed to rename folder: '+e); + window.plugin.bookmarks.optAlert('Rename failed '); + return; + } + } + } + + window.plugin.bookmarks.optRenameF = function() { + dialog({ + html: window.plugin.bookmarks.dialogLoadListFolders('bookmarksDialogRenameF', 'window.plugin.bookmarks.renameFolder', false, 0), + dialogClass: 'ui-dialog-bkmrksSet-copy', + title: 'Bookmarks Rename Folder' + }); + } + /***************************************************************************************************************************************************************/ /** AUTO DRAW **************************************************************************************************************************************************/ /***************************************************************************************************************************************************************/ @@ -971,6 +1086,7 @@ plugin.bookmarks.htmlStar = ''; plugin.bookmarks.htmlCalldrawBox = 'Auto draw'; plugin.bookmarks.htmlCallSetBox = 'Bookmarks Opt'; + plugin.bookmarks.htmlMoveBtn = 'Show/Hide "Move" button' var actions = ''; actions += 'Reset bookmarks'; @@ -980,7 +1096,9 @@ if(plugin.bookmarks.isAndroid()) { actions += 'Import bookmarks'; actions += 'Export bookmarks'; - } else { + } + actions += 'Rename Folder' + if(!plugin.bookmarks.isAndroid()) { actions += 'Save box position'; actions += 'Reset box position'; } @@ -1031,6 +1149,11 @@ } $('#toolbox').append(window.plugin.bookmarks.htmlCallSetBox+window.plugin.bookmarks.htmlCalldrawBox); + if(window.plugin.bookmarks.isSmart) { +// $('#bookmarksBox.mobile #topBar').prepend(window.plugin.bookmarks.htmlCallSetBox+window.plugin.bookmarks.htmlCalldrawBox); // wonk in progress + $('#bookmarksBox.mobile #topBar').append(plugin.bookmarks.htmlMoveBtn); + } + window.plugin.bookmarks.loadList('maps'); window.plugin.bookmarks.loadList('portals'); window.plugin.bookmarks.jquerySortableScript(); @@ -1059,4 +1182,4 @@ // PLUGIN END ////////////////////////////////////////////////////////// -@@PLUGINEND@@ +@@PLUGINEND@@ \ No newline at end of file diff --git a/plugins/bookmarks-css.css b/plugins/bookmarks-css.css index a8630974..ef7d3a23 100644 --- a/plugins/bookmarks-css.css +++ b/plugins/bookmarks-css.css @@ -440,16 +440,6 @@ display:none !important; } -#bookmarksBox.mobile #topBar #bookmarksDel{ - width:100%; - height:34px !important; - font-size:13px; - color:#fff; - font-weight:normal; - padding-top:11px; - text-indent:0; -} - #bookmarksBox.mobile #bookmarksTypeBar h5{ cursor:pointer; text-align:center; @@ -664,4 +654,63 @@ width:96%; height:120px; resize:vertical; +} + + +/*--- Other Opt css ---*/ +#bookmarksBox.mobile a.bookmarksMoveIn{ + display:none !important; +} + +#bookmarksBox.mobile .bookmarkList ul li ul li.bkmrk a.bookmarksMoveIn{ + background:none !important; + text-align:center; + color:#fff; + box-shadow: inset 0 1px 0 #20A8B1,inset -1px 0 0 #20A8B1 !important; + width:10%; +} + +#bookmarksBox.mobile.moveMode a.bookmarksMoveIn{ + display:block !important; +} + +#bookmarksBox.moveMode ul .bookmarksLink, +#bookmarksBox.moveMode ul .othersBookmarks .bookmarksLink{ + width:90% !important; +} +.bookmarksDialog h3{ + text-transform:capitalize;margin-top:10px; +} +.bookmarksDialog .bookmarkFolder{ + margin-bottom:4px; + border:1px solid #20a8b1; + background:#069; + padding:4px 10px; + color:#fff; + cursor:pointer; +} +.bookmarksDialog .bookmarkFolder:hover{ + text-decoration:underline; +} + +#bookmarksBox.mobile #topBar .btn{ + width:100%;height:45px !important; + font-size:13px; + color:#fff; + font-weight:normal; + padding-top:17px; + text-indent:0 !important; +} +#bookmarksBox.mobile .btn{ + width:50% !important; + background:#222; +} +#bookmarksBox.mobile .btn.left{ + border-right:1px solid #20a8b1 !important; +} +#bookmarksBox.mobile .btn#bookmarksMove{ + background:#B42E2E; +} +#bkmrksSetbox{ + text-align:center; } \ No newline at end of file From 3e82e10d44d1e2d9b10d81be3d9278ee77b877dd Mon Sep 17 00:00:00 2001 From: Jon Atkins Date: Tue, 6 May 2014 02:24:04 +0100 Subject: [PATCH 2/3] bump version numbers after a release, ready for the next... --- main.js | 2 +- mobile/AndroidManifest.xml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/main.js b/main.js index be09e135..c9d76cb2 100644 --- a/main.js +++ b/main.js @@ -1,7 +1,7 @@ // ==UserScript== // @id ingress-intel-total-conversion@jonatkins // @name IITC: Ingress intel map total conversion -// @version 0.16.8.@@DATETIMEVERSION@@ +// @version 0.16.9.@@DATETIMEVERSION@@ // @namespace https://github.com/jonatkins/ingress-intel-total-conversion // @updateURL @@UPDATEURL@@ // @downloadURL @@DOWNLOADURL@@ diff --git a/mobile/AndroidManifest.xml b/mobile/AndroidManifest.xml index e0f41dd5..01a7d53d 100644 --- a/mobile/AndroidManifest.xml +++ b/mobile/AndroidManifest.xml @@ -2,8 +2,8 @@ + android:versionCode="70" + android:versionName="0.10.9"> Date: Sat, 10 May 2014 00:36:44 +0100 Subject: [PATCH 3/3] for some reason SEND_PLEXT no longer munges it's parameters - but everything else does still! no idea if it's permanant, or an accident - so we'll handle either munged or unmunged parameters now --- code/chat.js | 10 +++++----- code/munge.js | 34 +++++++++++++++++++++------------- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/code/chat.js b/code/chat.js index bdb69446..32819248 100644 --- a/code/chat.js +++ b/code/chat.js @@ -79,7 +79,7 @@ window.chat.genPostData = function(isFaction, storageHash, getOlderMsgs) { maxLngE6: Math.round(ne.lng*1E6), minTimestampMs: -1, maxTimestampMs: -1, - chatTab: isFaction ? 'faction' : 'all' + chatTabGet: isFaction ? 'faction' : 'all' } if(getOlderMsgs) { @@ -689,10 +689,10 @@ window.chat.postMsg = function() { var publik = c === 'public'; var latlng = map.getCenter(); - var data = {message: msg, - latE6: Math.round(latlng.lat*1E6), - lngE6: Math.round(latlng.lng*1E6), - chatTab: publik ? 'all' : 'faction'}; + var data = {messageSendPlext: msg, + latE6SendPlext: Math.round(latlng.lat*1E6), + lngE6SendPlext: Math.round(latlng.lng*1E6), + chatTabSendPlext: publik ? 'all' : 'faction'}; var errMsg = 'Your message could not be delivered. You can copy&' + 'paste it here and try again if you want:\n\n' + msg; diff --git a/code/munge.js b/code/munge.js index a1e4cb78..d20a7d76 100755 --- a/code/munge.js +++ b/code/munge.js @@ -84,8 +84,8 @@ function extractMungeFromStock() { foundMunges['dashboard.getPaginatedPlexts'] = nemesis.dashboard.requests.MethodName.GET_PAGINATED_PLEXTS.toString(); foundMunges['dashboard.getThinnedEntities'] = nemesis.dashboard.requests.MethodName.GET_THINNED_ENTITIES.toString(); foundMunges['dashboard.getPortalDetails'] = nemesis.dashboard.requests.MethodName.GET_PORTAL_DETAILS.toString(); - foundMunges['dashboard.redeemReward'] = nemesis.dashboard.requests.MethodName.REDEEM_REWARD.toString(); - foundMunges['dashboard.sendInviteEmail'] = nemesis.dashboard.requests.MethodName.SEND_INVITE_EMAIL.toString(); +// foundMunges['dashboard.redeemReward'] = nemesis.dashboard.requests.MethodName.REDEEM_REWARD.toString(); +// foundMunges['dashboard.sendInviteEmail'] = nemesis.dashboard.requests.MethodName.SEND_INVITE_EMAIL.toString(); foundMunges['dashboard.sendPlext'] = nemesis.dashboard.requests.MethodName.SEND_PLEXT.toString(); // the rest are trickier - we need to parse the functions of the stock site. these break very often @@ -96,6 +96,9 @@ function extractMungeFromStock() { // and one to match members of object literal initialisation - {abcdef123456wxyz: or {"123456abcdefwxyz": var mungeRegExpLit = '(?:([a-z][a-z0-9]{15})|"([0-9][a-z0-9]{15})"):'; + // some cases don't munge now?!?! odd! + var mungeRegExpLitOrUnmunged = '(?:((?:[a-z][a-z0-9]{15})|message|latE6|lngE6|tab)|"([0-9][a-z0-9]{15})"):'; + // common parameters - method, version, version_parameter - currently found in the // nemesis.dashboard.network.XhrController.prototype.doSendRequest_ function // look for something like @@ -110,7 +113,8 @@ function extractMungeFromStock() { foundMunges.version_parameter = result[5]; // GET_THINNED_ENTITIES parameters - var reg = new RegExp('GET_THINNED_ENTITIES, nemesis.dashboard.network.XhrController.Priority.[A-Z]+, {'+mungeRegExpLit+'[a-z]'); + var reg = new RegExp('GET_THINNED_ENTITIES, nemesis.dashboard.network.XhrController.Priority.[A-Z]+, {' + +mungeRegExpLit+'[a-z]'); var result = reg.exec(nemesis.dashboard.network.DataFetcher.prototype.getGameEntities.toString()); foundMunges.quadKeys = result[1] || result[2]; @@ -134,27 +138,31 @@ function extractMungeFromStock() { foundMunges.maxLngE6 = result[9] || result[10]; foundMunges.minTimestampMs = result[11] || result[12]; foundMunges.maxTimestampMs = result[13] || result[14]; - foundMunges.chatTab = result[15] || result[16]; //guessed parameter name - only seen munged + foundMunges.chatTabGet = result[15] || result[16]; //guessed parameter name - only seen munged foundMunges.ascendingTimestampOrder = result[17] || result[18]; // SEND_PLEXT - var reg = new RegExp('SEND_PLEXT, nemesis.dashboard.network.XhrController.Priority.[A-Z]+, {'+mungeRegExpLit+'[a-z], '+mungeRegExpLit+'[a-z], '+mungeRegExpLit+'[a-z], '+mungeRegExpLit+'[a-z]}'); + var reg = new RegExp('SEND_PLEXT, nemesis.dashboard.network.XhrController.Priority.[A-Z]+, {' + +mungeRegExpLitOrUnmunged+'[a-z], ' + +mungeRegExpLitOrUnmunged+'[a-z], ' + +mungeRegExpLitOrUnmunged+'[a-z], ' + +mungeRegExpLitOrUnmunged+'[a-z]}'); var result = reg.exec(nemesis.dashboard.network.PlextStore.prototype.sendPlext.toString()); - foundMunges.message = result[1] || result[2]; - foundMunges.latE6 = result[3] || result[4]; - foundMunges.lngE6 = result[5] || result[6]; - var chatTab = result[7] || result[8]; - if (chatTab != foundMunges.chatTab) throw 'Error: inconsistent munge parsing for chatTab'; + foundMunges.messageSendPlext = result[1] || result[2]; + foundMunges.latE6SendPlext = result[3] || result[4]; + foundMunges.lngE6SendPlext = result[5] || result[6]; + foundMunges.chatTabSendPlext = result[7] || result[8]; +// if (chatTab != foundMunges.chatTab) throw 'Error: inconsistent munge parsing for chatTab'; // GET_PORTAL_DETAILS var reg = new RegExp('GET_PORTAL_DETAILS, nemesis.dashboard.network.XhrController.Priority.[A-Z]+, {'+mungeRegExpLit+'a}'); var result = reg.exec(nemesis.dashboard.network.DataFetcher.prototype.getPortalDetails.toString()); foundMunges.guid = result[1] || result[2]; - // SEND_INVITE_EMAIL - var reg = new RegExp('SEND_INVITE_EMAIL, nemesis.dashboard.network.XhrController.Priority.[A-Z]+, {'+mungeRegExpLit+'b}'); - foundMunges.inviteeEmailAddress = result[1] || result[2]; +// // SEND_INVITE_EMAIL +// var reg = new RegExp('SEND_INVITE_EMAIL, nemesis.dashboard.network.XhrController.Priority.[A-Z]+, {'+mungeRegExpLit+'b}'); +// foundMunges.inviteeEmailAddress = result[1] || result[2]; return foundMunges; } catch(e) {