您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Allows alterations to the WME UI to fix things screwed up or ignored by Waze
当前为
// ==UserScript== // @name WME Fix UI // @namespace https://greasyfork.org/en/users/46070 // @description Allows alterations to the WME UI to fix things screwed up or ignored by Waze // @include https://www.waze.com/editor/* // @include https://www.waze.com/*/editor/* // @include https://editor-beta.waze.com/* // @exclude https://www.waze.com/user/editor/* // @supportURL https://www.waze.com/forum/viewtopic.php?f=819&t=191178 // @version 0.3 // @grant none // ==/UserScript== // Thanks to (in no particular order) Bellhouse, Twister-UK, Timbones, Dave2084, Rickzabel (function() { // global variables var wmefu_version = "0.3"; var applyCount = 0; var wmefuinit = false; var shrinkBlackBarActive = false; var compressSegmentTabActive = false; function initialiseFixUI() { if (wmefuinit) { return; } // go round again if map container isn't there yet if(!window.Waze.map) { window.console.log("WME FixUI: waiting for WME..."); setTimeout(initialiseFixUI, 1000); return; } //create styles that will be used later // create tab contents var addon = document.createElement('section'); addon.id = "wmefu-addon"; var section = document.createElement('p'); section.style.paddingTop = "0px"; section.id = "fuContent"; section.innerHTML = '<b>UI Fixes</b><br>'; section.innerHTML += '<input type="checkbox" id="_cbMoveZoomBar" /> ' + '<span title="Because nobody likes a pointless UI change that breaks your workflow, imposed by idiots who rarely use the editor and don\'t listen to feedback">Move zoom bar to left</span><br>'; section.innerHTML += '<input type="checkbox" id="_cbHideUserInfo" /> ' + '<span title="Because we can earn points quicker without a massive chunk of space wasted on telling us how many we earnt up to yesterday">Hide user info in the side panel</span><br>'; section.innerHTML += '<input type="checkbox" id="_cbShrinkBlackBar" /> ' + '<span title="Because we can\'t afford to waste screen space on stuff we didn\'t ask for and don\'t want">Shrink the black bar above the map</span><br>'; section.innerHTML += '<input type="checkbox" id="_cbCompressSegmentTab" /> ' + '<span title="Because I\'m sick of having to scroll the side panel because of oversized fonts and wasted space">Compress the contents of the side panel</span><br>'; section.innerHTML += '<br>'; section.innerHTML += '<b><a href="https://greasyfork.org/en/scripts/20077-wme-fix-ui" target="_blank"><u>' + 'WME Fix UI</u></a></b> v' + wmefu_version; addon.appendChild(section); // insert the content as a tab var userTabs = getId('user-info'); var navTabs = getElementsByClassName('nav-tabs', userTabs)[0]; var tabContent = getElementsByClassName('tab-content', userTabs)[0]; if (typeof navTabs === "undefined") { console.log("WMEFU: not logged in - will initialise later"); Waze.loginManager.on("login", initialiseFixUI); return; } newtab = document.createElement('li'); newtab.innerHTML = '<a href="#sidepanel-FixUI" data-toggle="tab">FU</a>'; navTabs.appendChild(newtab); addon.id = "sidepanel-FixUI"; addon.className = "tab-pane"; tabContent.appendChild(addon); // setup event handlers for user actions: getId('_cbMoveZoomBar').onclick = moveZoomBar; getId('_cbShrinkBlackBar').onclick = shrinkBlackBar; getId('_cbHideUserInfo').onclick = hideUserInfo; getId('_cbCompressSegmentTab').onclick = compressSegmentTab; // restore saved settings if (localStorage.WMEFixUI) { console.log("WMEFU: loading options"); options = JSON.parse(localStorage.WMEFixUI); getId('_cbMoveZoomBar').checked = options[1]; getId('_cbShrinkBlackBar').checked = options[2]; getId('_cbHideUserInfo').checked = options[3]; getId('_cbCompressSegmentTab').checked = options[4]; } else { getId('_cbMoveZoomBar').checked = true; getId('_cbShrinkBlackBar').checked = true; getId('_cbHideUserInfo').checked = true; getId('_cbCompressSegmentTab').checked = true; } if (W.loginManager.user.userName == 'iainhouse') { // Adds an extra checkbox so I can test segment panel changes easily var brand = getId('brand'); extraCBSection = document.createElement('p'); extraCBSection.innerHTML = '<input type="checkbox" id="_cbextraCBSection" />'; brand.appendChild(extraCBSection); getId('_cbextraCBSection').onclick = FALSEcompressSegmentTab; _cbextraCBSection.checked = _cbCompressSegmentTab.checked; } // overload the WME exit function saveOptions = function() { if (localStorage) { console.log("WMEFU: saving options"); var options = []; // preserve previous options which may get lost after logout if (localStorage.WMEFixUI) options = JSON.parse(localStorage.WMEFixUI); options[1] = getId('_cbMoveZoomBar').checked; options[2] = getId('_cbShrinkBlackBar').checked; options[3] = getId('_cbHideUserInfo').checked; options[4] = getId('_cbCompressSegmentTab').checked; localStorage.WMEFixUI = JSON.stringify(options); } }; window.addEventListener("beforeunload", saveOptions, false); // apply the settings setTimeout(applyAllSettings, 2000); wmefuinit = true; window.console.log("WMEFU: Initialised"); } function applyAllSettings() { applyCount += 1; if (applyCount < 5) { setTimeout(applyAllSettings, 2000); } moveZoomBar(); shrinkBlackBar(); hideUserInfo(); compressSegmentTab(); } function moveZoomBar() { var WMETBZLI = getId('WMETB_ZoomLevelIndicator'); var reportPanel = getId('panel-container'); if (_cbMoveZoomBar.checked) { $(".olControlPanZoomBar").css({'left':10,'width':30,'right':""}); if (reportPanel) { reportPanel.style.left = "70px"; reportPanel.style.position = "absolute"; } if (WMETBZLI) { WMETBZLI.style.left = "50px"; WMETBZLI.style.right = ""; } } else { $(".olControlPanZoomBar").css({'left':"",'width':30,'right':10}); if (reportPanel) { reportPanel.style.left = ""; reportPanel.style.position = ""; } if (WMETBZLI) { WMETBZLI.style.left = ""; WMETBZLI.style.right = "50px"; } } } function hideUserInfo() { var PSButton = getId('WMEPS_UIButton'); var userbox = getId('user-box'); // WME Panel Swap button - move it up off the tabs if user info is hidden if (_cbHideUserInfo.checked) { userbox.style.padding = '0px'; $(".user-profile").css({'display':'none'}); if (PSButton) PSButton.style.top = '-20px'; } else { userbox.style.padding = '20px'; $(".user-profile").css({'display':'block'}); if (PSButton) PSButton.style.top = '10px'; } } function shrinkBlackBar() { var wm = getId('WazeMap'); if (_cbShrinkBlackBar.checked) { $(".topbar").css({'height':'20px','line-height':'20px','padding':'0 10px'}); $(".topbar .location-info").css({'font-size':'12px'}); if (!shrinkBlackBarActive) wm.style.height = (wm.offsetHeight + 10) + 'px'; } else { $(".topbar").css({'height':'30px','line-height':'30px','padding':'0 10px'}); $(".topbar .location-info").css({'font-size':'15px'}); if (shrinkBlackBarActive) wm.style.height = (wm.offsetHeight - 10) + 'px'; } shrinkBlackBarActive = _cbShrinkBlackBar.checked; } function FALSEcompressSegmentTab() { _cbCompressSegmentTab.checked = _cbextraCBSection.checked; compressSegmentTab(); } function compressSegmentTab() { var ep=getId('edit-panel') if (_cbCompressSegmentTab.checked) { if (!compressSegmentTabActive) { // shrink address addGlobalStyle('.primary-street { font-size: 13px; line-height: 15px; }'); addGlobalStyle('.address-edit { margin-bottom: 5px !important; }'); //shrink tabs addGlobalStyle('.nav > li > a { padding: 4px !important; }'); //reduce some vertical margins addGlobalStyle('.contents { padding-top: 0px !important; }'); addGlobalStyle('.form-group { margin-bottom: 2px !important; line-height: 1; font-size: 11px; }'); addGlobalStyle('.selection { margin-bottom: 5px !important; }'); addGlobalStyle('.side-panel-section { margin-bottom: 5px !important; }'); addGlobalStyle('.side-panel-section::after { margin-top: 5px !important; margin-bottom: 2px !important; }'); addGlobalStyle('.control-label { margin-bottom: 1px !important; }'); //shrink dropdown controls addGlobalStyle('.form-control { height: 22px !important; padding: 0px 12px !important; font-size: 11px; }'); //shrink button controls addGlobalStyle('.action-button { font-size: 11px; height: 22px; padding: 0px 12px; margin-bottom: 2px !important; }'); } } else { if (compressSegmentTabActive) { //enlarge address addGlobalStyle('.primary-street { font-size: 18px; line-height: 24px; }'); addGlobalStyle('.address-edit { margin-bottom: 20px !important; }'); //enlarge tabs addGlobalStyle('.nav > li > a { padding: 5px 15px !important; }'); //restore vertical margins addGlobalStyle('.contents { padding-top: 20px !important; }'); addGlobalStyle('.form-group { margin-bottom: 10px !important; line-height: 1.43; font-size: 13px; }'); addGlobalStyle('.selection { margin-bottom: 20px !important; }'); addGlobalStyle('.side-panel-section { margin-bottom: 21px !important; }'); addGlobalStyle('.side-panel-section::after { margin-top: 21px !important; margin-bottom: 21px !important; }'); addGlobalStyle('.control-label { margin-bottom: 5px !important; }'); //enlarge dropdown controls addGlobalStyle('.form-control { height: 32px !important; padding: 6px 12px !important; font-size: 13px; }'); //enlarge button controls addGlobalStyle('.action-button { font-size: 13px; height: 32px; padding: 6px 12px; margin-bottom: 10px !important; }'); } } compressSegmentTabActive = _cbCompressSegmentTab.checked } //Helper functions function addGlobalStyle(css) { var head, style; head = document.getElementsByTagName('head')[0]; if (!head) { return; } style = document.createElement('style'); style.type = 'text/css'; style.innerHTML = css; head.appendChild(style); } function getElementsByClassName(classname, node) { if(!node) node = document.getElementsByTagName("body")[0]; var a = []; var re = new RegExp('\\b' + classname + '\\b'); var els = node.getElementsByTagName("*"); for (var i=0,j=els.length; i<j; i++) if (re.test(els[i].className)) a.push(els[i]); return a; } function getId(node) { return document.getElementById(node); } // Start it running setTimeout(initialiseFixUI, 1000); })();