WME GLR State Scripts

Consolidation of state scripts (validator/counties/cities) for GLR states

目前为 2016-12-01 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name WME GLR State Scripts
  3. // @namespace https://greasyfork.org/users/30701-justins83-waze
  4. // @version 0.4.3
  5. // @description Consolidation of state scripts (validator/counties/cities) for GLR states
  6. // @include https://www.waze.com/editor/*
  7. // @include https://www.waze.com/*/editor/*
  8. // @include https://beta.waze.com/*
  9. // @exclude https://www.waze.com/user/editor*
  10. // @author JustinS83
  11. // @grant none
  12. // @require https://greasyfork.org/scripts/24851-wazewrap/code/WazeWrap.js?version=158078
  13. // @license GPLv3
  14. // ==/UserScript==
  15.  
  16. (function() {
  17. 'use strict';
  18.  
  19. function bootstrap(tries) {
  20. tries = tries || 1;
  21.  
  22. if (window.W &&
  23. window.W.map &&
  24. window.W.model &&
  25. $) {
  26. init();
  27. } else if (tries < 1000) {
  28. setTimeout(function () {bootstrap(tries++);}, 200);
  29. }
  30. }
  31.  
  32. bootstrap();
  33.  
  34. function isChecked(id) {
  35. return $('#' + id).is(':checked');
  36. }
  37.  
  38. function setChecked(id, checked) {
  39. $('#' + id).prop('checked', checked);
  40. }
  41.  
  42. function init(){
  43. var $section = $("<div>", {style:"padding:8px 16px", id:"GLRStateSections"});
  44.  
  45. var $OHsection = $("<div>", {style:"padding:8px 16px", id:"GLROHScriptsSettings"});
  46. $OHsection.html([
  47. '<div style="font-weight:bold">Ohio</div>',
  48. '<div title="OH Validator Localization, Author: Xanderb" id="divGLROHValidatorLocalization" class="controls-container"><input type="checkbox" id="_cbGLROHValidatorLocalizationEnable" name="StateValidator" /><label for="_cbGLROHValidatorLocalizationEnable">OH Validator Localization <a href="https://greasyfork.org/en/scripts/8746-wme-validator-localization-for-ohio" target="_blank">...</a></label></div>',
  49. '<div title="OH Counties 2014, Author: rickzable" class="controls-container"><input type="checkbox" id="_cbGLROHCounties2014Enable" /><label for ="_cbGLROHCounties2014Enable"> OH Counties 2014 <a href="https://greasyfork.org/scripts/11240-wme-counties-ohio-census-2014" target="_blank">...</a></label></div>',
  50. '<div title="OH Cities 2014-1, Author: JustinS83" class="controls-container"><input type="checkbox" id="_cbGLROHCities20141Enable" /><label for ="_cbGLROHCities20141Enable"> OH Cities 2014-1 <a href="https://greasyfork.org/scripts/17391-wme-ohio-cities-census-2014-1" target="_blank">...</a></label></div>',
  51. '<div title="OH Cities 2014-2, Author: JustinS83" class="controls-container"><input type="checkbox" id="_cbGLROHCities20142Enable" /><label for ="_cbGLROHCities20142Enable"> OH Cities 2014-2 <a href="https://greasyfork.org/scripts/17392-wme-ohio-cities-census-2014-2" target="_blank">...</a></label></div>',
  52. ].join(' '));
  53.  
  54. var $INsection = $("<div>", {style:"padding:8px 16px", id:"GLRINScriptsSettings"});
  55. $INsection.html([
  56. '<div style="font-weight:bold">Indiana</div>',
  57. '<div title="IN Validator Localization, Author: Xanderb" id="divINValidatorLocalization" class="controls-container"><input type="checkbox" id="_cbGLRINValidatorLocalizationEnable" name="StateValidator" /><label for="_cbGLRINValidatorLocalizationEnable">IN Validator Localization <a href="https://greasyfork.org/en/scripts/8433-wme-validator-localization-for-indiana" target="_blank">...</a></label></div>',
  58. '<div title="IN Counties 2014, Author: rickzable" class="controls-container"><input type="checkbox" id="_cbGLRINCounties2014Enable" /><label for ="_cbGLRINCounties2014Enable"> IN Counties 2014 <a href="https://greasyfork.org/en/scripts/11442-wme-counties-indiana-census-2014" target="_blank">...</a></label></div>',
  59. ].join(' '));
  60.  
  61. var $ILsection = $("<div>", {style:"padding:8px 16px", id:"GLRILScriptsSettings"});
  62. $ILsection.html([
  63. '<div style="font-weight:bold">Illinois</div>',
  64. '<div title="IL Validator Localization, Author: Xanderb" id="divILValidatorLocalization" class="controls-container"><input type="checkbox" id="_cbGLRILValidatorLocalizationEnable" name="StateValidator" /><label for="_cbGLRILValidatorLocalizationEnable">IL Validator Localization <a href="https://greasyfork.org/en/scripts/8747-wme-validator-localization-for-illinois" target="_blank">...</a></label></div>',
  65. '<div title="IL Counties 2014, Author: rickzable" class="controls-container"><input type="checkbox" id="_cbGLRILCounties2014Enable" /><label for ="_cbGLRILCounties2014Enable"> IL Counties 2014 <a href="https://greasyfork.org/en/scripts/8297-wme-counties-illinois-census-2014" target="_blank">...</a></label></div>',
  66. ].join(' '));
  67.  
  68. var $WIsection = $("<div>", {style:"padding:8px 16px", id:"GLRWIScriptsSettings"});
  69. $WIsection.html([
  70. '<div style="font-weight:bold">Wisconsin</div>',
  71. '<div title="WI Validator Localization, Author: Xanderb" id="divWIValidatorLocalization" class="controls-container"><input type="checkbox" id="_cbGLRWIValidatorLocalizationEnable" name="StateValidator" /><label for="_cbGLRWIValidatorLocalizationEnable">WI Validator Localization <a href="https://greasyfork.org/en/scripts/8748-wme-validator-localization-for-wisconsin" target="_blank">...</a></label></div>',
  72. '<div title="WI Counties 2014, Author: rickzable" class="controls-container"><input type="checkbox" id="_cbGLRWICounties2014Enable" /><label for ="_cbGLRWICounties2014Enable"> WI Counties 2014 <a href="https://greasyfork.org/en/scripts/11498-wme-counties-wisconsin-census-2014" target="_blank">...</a></label></div>',
  73. ].join(' '));
  74.  
  75. var $MIsection = $("<div>", {style:"padding:8px 16px", id:"GLRMIScriptsSettings"});
  76. $MIsection.html([
  77. '<div style="font-weight:bold">Michigan</div>',
  78. '<div title="MI Validator Localization, Author: Xanderb" id="divMIValidatorLocalization" class="controls-container"><input type="checkbox" id="_cbGLRMIValidatorLocalizationEnable" name="StateValidator" /><label for="_cbGLRMIValidatorLocalizationEnable">MI Validator Localization <a href="https://greasyfork.org/en/scripts/8749-wme-validator-localization-for-michigan" target="_blank">...</a></label></div>',
  79. '<div title="MI Counties 2014, Author: rickzable" class="controls-container"><input type="checkbox" id="_cbGLRMICounties2014Enable" /><label for ="_cbGLRMICounties2014Enable"> MI Counties 2014 <a href="https://greasyfork.org/en/scripts/11453-wme-counties-michigan-census-2014" target="_blank">...</a></label></div>',
  80. '<div title="MI Drive Total Closures Only, Author: vaindil" class="controls-container"><input type="checkbox" id="_cbGLRMIDriveTotalClosures" /><label for="_cbGLRMIDriveTotalClosures">MI Drive Total Closures <a href="https://greasyfork.org/en/scripts/15672-mi-drive-total-closures-only" target="_blank">...</a></label></div>',
  81. ].join(' '));
  82.  
  83. $section.append($OHsection);
  84. $section.append($INsection);
  85. $section.append($ILsection);
  86. $section.append($WIsection);
  87. $section.append($MIsection);
  88.  
  89. new WazeWrap.Interface.Tab('GLR Scripts', $section.html(), initializeSettings);
  90. }
  91.  
  92. function initializeSettings(){
  93. $('input[name^="StateValidator"]').change(function () {
  94. $('input[name^="StateValidator"]').not(this).prop('checked', false);
  95. });
  96.  
  97. loadOhio();
  98. loadIndiana();
  99. loadIllinois();
  100. loadWisconsin();
  101. loadMichigan();
  102. }
  103.  
  104. function loadOhio(){
  105. var storedOptionsStr = localStorage.GLR_OHScripts;
  106.  
  107. if(!localStorage.GLR_OHScripts)
  108. storedOptionsStr = localStorage.OHScripts;
  109.  
  110. var options = storedOptionsStr ? JSON.parse(storedOptionsStr) : [0, true, true, false, false, true];
  111. setChecked('_cbGLROHValidatorLocalizationEnable', options[1]);
  112. setChecked('_cbGLROHCounties2014Enable', options[2]);
  113. setChecked('_cbGLROHCities20141Enable', options[3]);
  114. setChecked('_cbGLROHCities20142Enable', options[4]);
  115.  
  116. if(!localStorage.GLR_OHScripts){
  117. SaveSettings();
  118. localStorage.removeItem("OHScripts");
  119. }
  120.  
  121. $('input[id^="_cbGLROH"]').change(function() { SaveSettings(); });
  122.  
  123. if(!$('#OHScriptsSettings')){
  124. if(options[1])
  125. $.getScript("https://greasyfork.org/scripts/8746-wme-validator-localization-for-ohio/code/WME%20Validator%20Localization%20for%20Ohio.user.js");
  126.  
  127. if(options[2])
  128. $.getScript("https://greasyfork.org/scripts/11240-wme-counties-ohio-census-2014/code/WME%20Counties%20Ohio%20Census%202014.user.js");
  129.  
  130. if(options[3])
  131. $.getScript("https://greasyfork.org/scripts/17391-wme-ohio-cities-census-2014-1/code/WME%20Ohio%20Cities%20Census%202014%20-%201.user.js");
  132.  
  133. if(options[4])
  134. $.getScript("https://greasyfork.org/scripts/17392-wme-ohio-cities-census-2014-2/code/WME%20Ohio%20Cities%20Census%202014%20-%202.user.js");
  135. }
  136.  
  137. }
  138.  
  139. function loadIndiana(){
  140. var storedOptionsStr = localStorage.GLR_INScripts;
  141.  
  142. var options = storedOptionsStr ? JSON.parse(storedOptionsStr) : [0, false, false];
  143. setChecked('_cbGLRINValidatorLocalizationEnable', options[1]);
  144. setChecked('_cbGLRINCounties2014Enable', options[2]);
  145.  
  146. $('input[id^="_cbGLRIN"]').change(function() { SaveSettings(); });
  147.  
  148. if(options[1])
  149. $.getScript("https://greasyfork.org/scripts/8433-wme-validator-localization-for-indiana/code/WME%20Validator%20Localization%20for%20Indiana.user.js");
  150.  
  151. if(options[2])
  152. $.getScript("https://greasyfork.org/scripts/11442-wme-counties-indiana-census-2014/code/WME%20Counties%20Indiana%20Census%202014.user.js");
  153. }
  154.  
  155. function loadIllinois(){
  156. var storedOptionsStr = localStorage.GLR_ILScripts;
  157.  
  158. var options = storedOptionsStr ? JSON.parse(storedOptionsStr) : [0, false, false];
  159. setChecked('_cbGLRILValidatorLocalizationEnable', options[1]);
  160. setChecked('_cbGLRILCounties2014Enable', options[2]);
  161.  
  162. $('input[id^="_cbGLRIL"]').change(function() { SaveSettings(); });
  163.  
  164. if(options[1])
  165. $.getScript("https://greasyfork.org/scripts/8747-wme-validator-localization-for-illinois/code/WME%20Validator%20Localization%20for%20Illinois.user.js");
  166.  
  167. if(options[2])
  168. $.getScript("https://greasyfork.org/scripts/8297-wme-counties-illinois-census-2014/code/WME%20Counties%20Illinois%20Census%202014.user.js");
  169. }
  170.  
  171. function loadWisconsin(){
  172. var storedOptionsStr = localStorage.GLR_WIScripts;
  173.  
  174. var options = storedOptionsStr ? JSON.parse(storedOptionsStr) : [0, false, false];
  175. setChecked('_cbGLRWIValidatorLocalizationEnable', options[1]);
  176. setChecked('_cbGLRWICounties2014Enable', options[2]);
  177.  
  178. $('input[id^="_cbGLRWI"]').change(function() { SaveSettings(); });
  179.  
  180. if(options[1])
  181. $.getScript("https://greasyfork.org/scripts/8748-wme-validator-localization-for-wisconsin/code/WME%20Validator%20Localization%20for%20Wisconsin.user.js");
  182.  
  183. if(options[2])
  184. $.getScript("https://greasyfork.org/scripts/11498-wme-counties-wisconsin-census-2014/code/WME%20Counties%20Wisconsin%20Census%202014.user.js");
  185. }
  186.  
  187. function loadMichigan(){
  188. var storedOptionsStr = localStorage.GLR_MIScripts;
  189.  
  190. var options = storedOptionsStr ? JSON.parse(storedOptionsStr) : [0, false, false, false];
  191. setChecked('_cbGLRMIValidatorLocalizationEnable', options[1]);
  192. setChecked('_cbGLRMICounties2014Enable', options[2]);
  193. setChecked('_cbGLRMIDriveTotalClosures', options[3]);
  194.  
  195. $('input[id^="_cbGLRMI"]').change(function() { SaveSettings(); });
  196.  
  197. if(options[1])
  198. $.getScript("https://greasyfork.org/scripts/8749-wme-validator-localization-for-michigan/code/WME%20Validator%20Localization%20for%20Michigan.user.js");
  199.  
  200. if(options[2])
  201. $.getScript("https://greasyfork.org/scripts/11453-wme-counties-michigan-census-2014/code/WME%20Counties%20Michigan%20Census%202014.user.js");
  202.  
  203. if(options[3])
  204. $.getScript("https://greasyfork.org/scripts/15672-mi-drive-total-closures-only/code/Mi%20Drive%20-%20Total%20Closures%20Only.user.js");
  205. }
  206.  
  207. function SaveSettings(){
  208. if (localStorage) {
  209. var options = [];
  210. // preserve previous options which may get lost after logout
  211. if (localStorage.GLR_OHScripts) { options = JSON.parse(localStorage.GLR_OHScripts); }
  212. options[1] = isChecked('_cbGLROHValidatorLocalizationEnable');
  213. options[2] = isChecked('_cbGLROHCounties2014Enable');
  214. options[3] = isChecked('_cbGLROHCities20141Enable');
  215. options[4] = isChecked('_cbGLROHCities20142Enable');
  216. options[5] = isChecked('GLRFCDisplay');
  217. localStorage.GLR_OHScripts = JSON.stringify(options);
  218.  
  219. var ILoptions = [];
  220. if (localStorage.GLR_ILScripts) { options = JSON.parse(localStorage.GLR_ILScripts); }
  221. ILoptions[1] = isChecked('_cbGLRILValidatorLocalizationEnable');
  222. ILoptions[2] = isChecked('_cbGLRILCounties2014Enable');
  223. localStorage.GLR_ILScripts = JSON.stringify(ILoptions);
  224.  
  225. var INoptions = [];
  226. if (localStorage.GLR_INScripts) { options = JSON.parse(localStorage.GLR_INScripts); }
  227. INoptions[1] = isChecked('_cbGLRINValidatorLocalizationEnable');
  228. INoptions[2] = isChecked('_cbGLRINCounties2014Enable');
  229. localStorage.GLR_INScripts = JSON.stringify(INoptions);
  230.  
  231. var WIoptions = [];
  232. if (localStorage.GLR_WIScripts) { options = JSON.parse(localStorage.GLR_WIScripts); }
  233. WIoptions[1] = isChecked('_cbGLRWIValidatorLocalizationEnable');
  234. WIoptions[2] = isChecked('_cbGLRWICounties2014Enable');
  235. localStorage.GLR_WIScripts = JSON.stringify(WIoptions);
  236.  
  237. var MIoptions = [];
  238. if (localStorage.GLR_MIScripts) { options = JSON.parse(localStorage.GLR_MIScripts); }
  239. MIoptions[1] = isChecked('_cbGLRMIValidatorLocalizationEnable');
  240. MIoptions[2] = isChecked('_cbGLRMICounties2014Enable');
  241. MIoptions[3] = isChecked('_cbGLRMIDriveTotalClosures');
  242. localStorage.GLR_MIScripts = JSON.stringify(MIoptions);
  243. }
  244. }
  245.  
  246. })();