From 4d96431582c44dde310a8fb3dce4fbd3bebbb3d2 Mon Sep 17 00:00:00 2001 From: litatus Date: Sun, 12 Nov 2017 16:06:47 -0300 Subject: [PATCH 1/6] Added functions Added resize() and getInitialPoint() functions. When the map is initially in a hidden, has "width: 0", and it becomes visible is needed to trigger "resize". So when the div becomes visible, a possible solution could be: var widgetMap = mapInputWidgetManager.getWidget(mapDiv.prop('id')); if(mapDiv.is(':visible') && !mapDiv.data('resized')){ widgetMap.resize(); var point = widgetMap.getInitialPoint(); if(point){ widgetMap.panTo(point); widgetMap.setZoom(15); } mapDiv.data('resized', true); } --- sources/web/js/map-input-widget.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/sources/web/js/map-input-widget.js b/sources/web/js/map-input-widget.js index ee7882f..bd778f8 100644 --- a/sources/web/js/map-input-widget.js +++ b/sources/web/js/map-input-widget.js @@ -335,6 +335,17 @@ function MapInputWidget ( widget ) map.setZoom(zoom); }; + // Resize the map + this.resize = function() + { + google.maps.event.trigger(map, "resize"); + }; + + // Gets the initial point + this.getInitialPoint = function () + { + return getInitialValue(); + }; }; @@ -342,9 +353,7 @@ function MapInputWidget ( widget ) // Use it to get references to widget instances. var mapInputWidgetManager; -$(window).load -( - function() +$(window).on('load', function() { // Create an instance of widget manager From bde4671a66898633c5ebd11da9f51bbad67ed929 Mon Sep 17 00:00:00 2001 From: litatus Date: Sun, 12 Nov 2017 16:36:52 -0300 Subject: [PATCH 2/6] Updated min.js --- sources/web/js/map-input-widget.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/web/js/map-input-widget.min.js b/sources/web/js/map-input-widget.min.js index 96caec6..87a769e 100644 --- a/sources/web/js/map-input-widget.min.js +++ b/sources/web/js/map-input-widget.min.js @@ -1 +1 @@ -function MapInputWidgetManager(){const b=".kolyunya-map-input-widget";var a=this;var c=Array();var e=function(f){if(!$(f).data("initialized")){var g=new MapInputWidget(f);g.initialize();return g}return null};var d=function(g){var f=g.getId();c[f]=g};this.initializeWidgets=function(){$(b).each(function(f,g){var h=e(g);if(h){d(h)}})};this.getWidget=function(f){var g=c[f];return g}}function MapInputWidget(f){const p="input.kolyunya-map-input-widget-input";const b="input.kolyunya-map-input-widget-search-bar";const c="div.kolyunya-map-input-widget-canvas";var l=this;var j;var m;var d;var s;var r=function(){j=$(f).find(p).get(0);m=$(f).find(b).get(0);d=$(f).find(c).get(0)};var a=function(){s=new google.maps.Map(d,{mapTypeId:$(f).data("map-type"),center:q(),zoom:$(f).data("zoom"),styles:[{featureType:"poi",stylers:[{visibility:"off",},],},],mapTypeControlOptions:{mapTypeIds:[],},});google.maps.event.addListener(s,"click",function(u){l.setPosition({latitude:u.latLng.lat(),longitude:u.latLng.lng(),})})};var h=function(){var u=e();l.setPosition(u);$(f).data("initialized",true)};var t=function(){var u=$(f).data("enable-search-bar");var v=!u;$(m).prop("hidden",v);searchBarAutocomplete=new google.maps.places.Autocomplete(m);s.controls[google.maps.ControlPosition.TOP_LEFT].push(m);google.maps.event.addListener(searchBarAutocomplete,"place_changed",function(){var w=this.getPlace();var x=w.geometry;if(x){var y=x.location;l.setPosition(y)}})};var g=function(v){var w=i();var u=n(v);w=w.replace(/%latitude%/g,u.lat());w=w.replace(/%longitude%/g,u.lng());return w};var k=function(){var u=$(j).prop("value")!="";return u};var e=function(){var D;var z=i();var B=$(j).prop("value");if(B!==""){var x=z.indexOf("%latitude%");var A=z.indexOf("%longitude%");var v=x Date: Mon, 13 Nov 2017 10:17:14 -0300 Subject: [PATCH 3/6] Update MapInputWidget.php --- sources/widgets/MapInputWidget.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sources/widgets/MapInputWidget.php b/sources/widgets/MapInputWidget.php index 09111f8..b051990 100644 --- a/sources/widgets/MapInputWidget.php +++ b/sources/widgets/MapInputWidget.php @@ -29,6 +29,8 @@ class MapInputWidget extends \yii\widgets\InputWidget public $enableSearchBar = true; + public $editMode = true; + public function run() { @@ -53,6 +55,7 @@ public function run() 'animateMarker' => $this->animateMarker, 'alignMapCenter' => $this->alignMapCenter, 'enableSearchBar' => $this->enableSearchBar, + 'editMode' => $this->editMode ] ); } From 225467e0f94298c006a213468428da4b30910399 Mon Sep 17 00:00:00 2001 From: litatus Date: Mon, 13 Nov 2017 10:18:00 -0300 Subject: [PATCH 4/6] Update MapInputWidget.php --- sources/widgets/views/MapInputWidget.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/widgets/views/MapInputWidget.php b/sources/widgets/views/MapInputWidget.php index 8bab973..fe319d0 100644 --- a/sources/widgets/views/MapInputWidget.php +++ b/sources/widgets/views/MapInputWidget.php @@ -22,7 +22,8 @@ 'map-type' => $mapType, 'animate-marker' => $animateMarker, 'align-map-center' => $alignMapCenter, - 'enable-search-bar' => $enableSearchBar, + 'enable-search-bar' => $enableSearchBar,, + 'edit-mode' => $editMode ], ] ); From 80c08b297ce576fc91659f9d29842be84b0296fb Mon Sep 17 00:00:00 2001 From: litatus Date: Mon, 13 Nov 2017 10:21:07 -0300 Subject: [PATCH 5/6] Update map-input-widget.js --- sources/web/js/map-input-widget.js | 40 ++++++++++++++++++------------ 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/sources/web/js/map-input-widget.js b/sources/web/js/map-input-widget.js index bd778f8..23b8434 100644 --- a/sources/web/js/map-input-widget.js +++ b/sources/web/js/map-input-widget.js @@ -105,21 +105,23 @@ function MapInputWidget ( widget ) } ); - google.maps.event.addListener - ( - map, - 'click', - function ( click ) - { - self.setPosition - ( - { - latitude: click.latLng.lat(), - longitude: click.latLng.lng(), - } - ); - } - ); + if(isEditMode()){ + google.maps.event.addListener + ( + map, + 'click', + function ( click ) + { + self.setPosition + ( + { + latitude: click.latLng.lat(), + longitude: click.latLng.lng(), + } + ); + } + ); + } }; @@ -245,6 +247,12 @@ function MapInputWidget ( widget ) return point; } + var isEditMode = function () + { + var mode = $(widget).data('edit-mode'); + return mode === 1; + }; + // Initializes widget this.initialize = function() { @@ -301,7 +309,7 @@ function MapInputWidget ( widget ) { map: map, position: point, - draggable: true, + draggable: isEditMode(), animation: markerAnimation, } ); From b2cc5355ef19dc9cec333131c3a1c2f9f699fce0 Mon Sep 17 00:00:00 2001 From: litatus Date: Sat, 18 Nov 2017 18:50:54 -0300 Subject: [PATCH 6/6] parse error fix stupid of me --- sources/widgets/views/MapInputWidget.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/widgets/views/MapInputWidget.php b/sources/widgets/views/MapInputWidget.php index fe319d0..c9e6c6c 100644 --- a/sources/widgets/views/MapInputWidget.php +++ b/sources/widgets/views/MapInputWidget.php @@ -22,7 +22,7 @@ 'map-type' => $mapType, 'animate-marker' => $animateMarker, 'align-map-center' => $alignMapCenter, - 'enable-search-bar' => $enableSearchBar,, + 'enable-search-bar' => $enableSearchBar, 'edit-mode' => $editMode ], ]