WME Add Uturns from node

Add uturns from node

  1. // ==UserScript==
  2. // @name WME Add Uturns from node
  3. // @version 0.1
  4. // @description Add uturns from node
  5. // @author ixxvivxxi
  6. // @include https://www.waze.com/editor/*
  7. // @include https://www.waze.com/*/editor/*
  8. // @include https://editor-beta.waze.com/editor/*
  9. // @include https://editor-beta.waze.com/*/editor/*
  10. // @grant none
  11. // @namespace https://greasyfork.org/ru/scripts/16950-wme-add-uturns-from-node
  12.  
  13. // ==/UserScript==
  14.  
  15. function Uturns_bootstrap()
  16. {
  17. var bGreasemonkeyServiceDefined = false;
  18.  
  19. try
  20. {
  21. if ("object" === typeof Components.interfaces.gmIGreasemonkeyService)
  22. {
  23. bGreasemonkeyServiceDefined = true;
  24. }
  25. }
  26. catch (err)
  27. {
  28. //Ignore.
  29. }
  30. if ( "undefined" === typeof unsafeWindow || ! bGreasemonkeyServiceDefined)
  31. {
  32. unsafeWindow = ( function ()
  33. {
  34. var dummyElem = document.createElement('p');
  35. dummyElem.setAttribute ('onclick', 'return window;');
  36. return dummyElem.onclick ();
  37. } ) ();
  38. }
  39. /* begin running the code! */
  40. setTimeout(startUturns,999);
  41. }
  42. function startUturns() {
  43.  
  44. Waze.selectionManager.events.register("selectionchanged", null, showButton);
  45. var wazeActionModifyConnection= require("Waze/Action/ModifyConnection")
  46.  
  47. function showButton() {
  48. if(Waze.selectionManager.selectedItems.length == 0 || Waze.selectionManager.selectedItems.length > 1) return;
  49. if(Waze.selectionManager.selectedItems[0].model.type == "node") {
  50.  
  51. $('.side-panel-section:first-child').append('<button id="addUturns" class="btn btn-default">add uturns</button>');
  52. }
  53.  
  54. }
  55.  
  56. $('#sidebar').on('click', '#addUturns', function(event) {
  57. var node = Waze.selectionManager.selectedItems[0].model;
  58. var segIDs = node.attributes.segIDs;
  59. for (var i = 0; i < segIDs.length; i++) {
  60. var segment = Waze.model.segments.objects[segIDs[i]];
  61. if (segment.attributes.fromNodeID == node.attributes.id) {
  62. console.log('А', segment.attributes.id);
  63. segment.attributes.fromConnections[segment.attributes.id] = true;
  64. Waze.model.actionManager.add(new wazeActionModifyConnection(segment.attributes.id, segment.getFromNode(), segment.attributes.id,segment.getFromNode()));
  65. } else {
  66. console.log('B', segment.attributes.id);
  67. segment.attributes.toConnections[segment.attributes.id] = true;
  68. Waze.model.actionManager.add(new wazeActionModifyConnection(segment.attributes.id, segment.getToNode(), segment.attributes.id, segment.getToNode()));
  69. }
  70.  
  71. }
  72.  
  73. });
  74.  
  75.  
  76. }
  77.  
  78. Uturns_bootstrap();