diff --git a/plugins/draw-tools.user.js b/plugins/draw-tools.user.js index 7d2c96fd..cdb81e93 100644 --- a/plugins/draw-tools.user.js +++ b/plugins/draw-tools.user.js @@ -2,7 +2,7 @@ // @id iitc-plugin-draw-tools@breunigs // @name IITC plugin: draw tools // @category Layer -// @version 0.5.3.@@DATETIMEVERSION@@ +// @version 0.6.0.@@DATETIMEVERSION@@ // @namespace https://github.com/jonatkins/ingress-intel-total-conversion // @updateURL @@UPDATEURL@@ // @downloadURL @@DOWNLOADURL@@ @@ -32,11 +32,12 @@ window.plugin.drawTools.loadExternals = function() { $('head').append(''); } -window.plugin.drawTools.setOptions = function(setcolor) { +window.plugin.drawTools.setOptions = function(color) { + if (color === undefined) color = '#a24ac3'; window.plugin.drawTools.lineOptions = { stroke: true, - color: setcolor, + color: color, weight: 4, opacity: 0.5, fill: false, @@ -62,7 +63,7 @@ window.plugin.drawTools.setOptions = function(setcolor) { // renders the draw control buttons in the top left corner -window.plugin.drawTools.DrawControl = function() { +window.plugin.drawTools.addDrawControl = function() { var drawControl = new L.Control.Draw({ draw: { rectangle: false, @@ -124,9 +125,8 @@ window.plugin.drawTools.DrawControl = function() { }, }); - return drawControl; - + map.addControl(drawControl); // plugin.drawTools.addCustomButtons(); } @@ -196,27 +196,19 @@ window.plugin.drawTools.load = function() { var layer = null; switch(item.type) { case 'polyline': - if (typeof item.color === 'undefined'){ - window.plugin.drawTools.setOptions('#a24ac3'); - }else{ - window.plugin.drawTools.setOptions(item.color);} + window.plugin.drawTools.setOptions(item.color); layer = L.geodesicPolyline(item.latLngs,window.plugin.drawTools.lineOptions); break; case 'polygon': - if (typeof item.color === 'undefined'){ - window.plugin.drawTools.setOptions('#a24ac3'); - }else{ - window.plugin.drawTools.setOptions(item.color);} + window.plugin.drawTools.setOptions(item.color); layer = L.geodesicPolygon(item.latLngs,window.plugin.drawTools.polygonOptions); break; case 'circle': - if (typeof item.color === 'undefined'){ - window.plugin.drawTools.setOptions('#a24ac3'); - }else{ - window.plugin.drawTools.setOptions(item.color);} + window.plugin.drawTools.setOptions(item.color); layer = L.geodesicCircle(item.latLng,item.radius,window.plugin.drawTools.polygonOptions); break; case 'marker': + // TODO? marker colours layer = L.marker(item.latLng,window.plugin.drawTools.markerOptions) break; default: @@ -232,64 +224,63 @@ window.plugin.drawTools.load = function() { } //Draw Tools Options - // Manual import, export and reset data - window.plugin.drawTools.manualOpt = function() { + +// Manual import, export and reset data +window.plugin.drawTools.manualOpt = function() { + dialog({ + html: plugin.drawTools.htmlSetbox, + dialogClass: 'ui-dialog-drawtoolsSet', + title: 'Draw Tools Options' + }); +} + +window.plugin.drawTools.optAlert = function(message) { + $('.ui-dialog-drawtoolsSet .ui-dialog-buttonset').prepend('

'+message+'

'); + $('.drawtools-alert').delay(2500).fadeOut(); +} + +window.plugin.drawTools.optCopy = function() { dialog({ - html: plugin.drawTools.htmlSetbox, - dialogClass: 'ui-dialog-drawtoolsSet', - title: 'Draw Tools Options' + html: '

Select all and press CTRL+C to copy it.

', + width: 600, + dialogClass: 'ui-dialog-drawtoolsSet-copy', + title: 'Draw Tools Export' }); - } +} - window.plugin.drawTools.optAlert = function(message) { - $('.ui-dialog-drawtoolsSet .ui-dialog-buttonset').prepend('

'+message+'

'); - $('.drawtools-alert').delay(2500).fadeOut(); +window.plugin.drawTools.optPaste = function() { + var promptAction = prompt('Press CTRL+V to paste it.', ''); + if(promptAction !== null && promptAction !== '') { + localStorage['plugin-draw-tools-layer'] = promptAction; + window.plugin.drawTools.drawnItems.clearLayers(); + window.plugin.drawTools.load(); + console.log('DRAWTOOLS: reset and imported drawn tiems'); + window.plugin.drawTools.optAlert('Import Successful.'); } +} - window.plugin.drawTools.optCopy = function() { - dialog({ - html: '

Select all and press CTRL+C to copy it.

', - dialogClass: 'ui-dialog-drawtoolsSet-copy', - title: 'Draw Tools Export' - }); +window.plugin.drawTools.optReset = function() { + var promptAction = confirm('All drawn items will be deleted. Are you sure?', ''); + if(promptAction) { + delete localStorage['plugin-draw-tools-layer']; + window.plugin.drawTools.drawnItems.clearLayers(); + window.plugin.drawTools.load(); + console.log('DRAWTOOLS: reset all drawn items'); + window.plugin.drawTools.optAlert('Reset Successful. '); } - - window.plugin.drawTools.optPaste = function() { - var promptAction = prompt('Press CTRL+V to paste it.', ''); - if(promptAction !== null && promptAction !== '') { - localStorage['plugin-draw-tools-layer'] = promptAction; - window.plugin.drawTools.drawnItems.clearLayers(); - window.plugin.drawTools.load(); - console.log('DRAWTOOLS: reset and imported drawn tiems'); - window.plugin.drawTools.optAlert('Import Successful. '); - } - } - - window.plugin.drawTools.optReset = function() { - var promptAction = prompt('All drawn items will be deleted. Are you sure? [Y/N]', ''); - if(promptAction !== null && (promptAction === 'Y' || promptAction === 'y')) { - delete localStorage['plugin-draw-tools-layer']; - window.plugin.drawTools.drawnItems.clearLayers(); - window.plugin.drawTools.load(); - console.log('DRAWTOOLS: reset all drawn items'); - window.plugin.drawTools.optAlert('Reset Successful. '); - } - } - - window.plugin.drawTools.optColor = function() { - var promptAction = prompt('Current Color is '+window.plugin.drawTools.lineOptions.color, ''); - if(promptAction !== null && promptAction !== '') { - plugin.drawTools.controller.removeFrom(map); - window.plugin.drawTools.setOptions(promptAction); -plugin.drawTools.controller = plugin.drawTools.DrawControl(); - plugin.drawTools.controller.addTo(map); - console.log('DRAWTOOLS: color changed'); - window.plugin.drawTools.optAlert('Color Changed. '); - } +} + +window.plugin.drawTools.optColor = function() { + var promptAction = prompt('Current Color is '+window.plugin.drawTools.lineOptions.color, ''); + if(promptAction !== null && promptAction !== '') { + window.plugin.drawTools.setOptions(promptAction); + console.log('DRAWTOOLS: color changed'); + window.plugin.drawTools.optAlert('Color Changed. '); } +} window.plugin.drawTools.boot = function() { - window.plugin.drawTools.setOptions('#a24ac3'); + window.plugin.drawTools.setOptions(); //create a leaflet FeatureGroup to hold drawn items window.plugin.drawTools.drawnItems = new L.FeatureGroup(); @@ -298,8 +289,7 @@ window.plugin.drawTools.boot = function() { plugin.drawTools.load(); //add the draw control - this references the above FeatureGroup for editing purposes - plugin.drawTools.controller = plugin.drawTools.DrawControl(); - plugin.drawTools.controller.addTo(map); + plugin.drawTools.addDrawControl(); //start off hidden. if the layer is enabled, the below addLayerGroup will add it, triggering a 'show' $('.leaflet-draw-section').hide(); @@ -344,10 +334,11 @@ window.plugin.drawTools.boot = function() { +'Paste/Import Drawn Items' +'Reset Drawn Items' +''; + $('head').append(''); + '#drawtoolsSetbox a { display:block; color:#ffce00; border:1px solid #ffce00; padding:3px 0; margin:10px auto; width:80%; text-align:center; background:rgba(8,48,78,.9); }'+ + '.ui-dialog-drawtoolsSet-copy textarea { width:96%; height:250px; resize:vertical; }'+ + ''); }