socmap_adf 0.0.10 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,6 @@
1
1
  # Default requires for ADF modules
2
2
  #= require_self
3
+ #= require_tree ./templates
3
4
  #= require_tree ./views
4
5
 
5
6
  ADF.GMap =
@@ -0,0 +1 @@
1
+ <div class="menu_element"><%= @title %></div>
@@ -0,0 +1,54 @@
1
+ class ADF.GMap.Views.ContextMenu extends ADF.MVC.Views.Base
2
+
3
+ itemTemplate: JST['socmap_adf/modules/gmap/templates/context_menu_item']
4
+ position: {x:null, y:null}
5
+ latLng: null
6
+
7
+ constructor: (options) ->
8
+ super(options)
9
+ @gElement = options.gElement
10
+ @map = options.mapModel
11
+ @eventBus.on "ADF.GMap.Views.ContextMenu.hide", @hide
12
+ @overlay = new google.maps.OverlayView()
13
+ @overlay.draw = () ->
14
+ @overlay.setMap(@map.getGMap())
15
+
16
+ render: () ->
17
+ newElement = @make("div", {"class": "map_context_menu", "style" : "display:none;position:absolute;z-index:10;"} )
18
+ @setElement( newElement )
19
+ @map.getMapElement().append($(@el))
20
+ google.maps.event.addDomListener @gElement, 'rightclick', @onRightClicked
21
+ @map.getMapElement().bind "mouseleave", @onMapMouseout
22
+ $("body").bind "click", @onBodyClicked
23
+ @
24
+
25
+ show: () ->
26
+ $(@el).css({"top" : @position.y, "left": @position.x})
27
+ $(@el).show()
28
+ @eventBus.trigger "ADF.GMap.Views.ContextMenu.isShowed"
29
+
30
+ hide: () =>
31
+ $(@el).hide()
32
+ @eventBus.trigger "ADF.GMap.Views.ContextMenu.isHidden"
33
+
34
+ onRightClicked: (e) =>
35
+ @eventBus.trigger "ADF.GMap.Views.ContextMenu.hide"
36
+ @hide()
37
+
38
+ point = @overlay.getProjection().fromLatLngToContainerPixel(e.latLng)
39
+ @position = point
40
+ @latLng = e.latLng
41
+ @show()
42
+
43
+ onBodyClicked: (e) =>
44
+ @hide()
45
+
46
+ onMapMouseout: (e) =>
47
+ @hide()
48
+
49
+ bindItem: (title, callback) =>
50
+ item = @itemTemplate({title : title})
51
+ $(@el).append($(item))
52
+ $(@el).find(".menu_element").last().bind "click", () =>
53
+ callback(@latLng)
54
+ @
@@ -102,7 +102,7 @@ class ADF.GMap.Views.Overlay extends google.maps.OverlayView
102
102
  @markerClickEvent = google.maps.event.addDomListener @marker, 'click', (e) =>
103
103
  if @view.clickable
104
104
  @view.beforeMarkerClicked()
105
- if @hidden
105
+ if @hidden && @view.openOnClick
106
106
  @show()
107
107
  @draw()
108
108
 
@@ -15,6 +15,7 @@ class ADF.GMap.Views.OverlayView extends ADF.MVC.Views.Base
15
15
  customMarker: null
16
16
  zindex: 1
17
17
  clickable: true
18
+ openOnClick: true
18
19
  asLabel: false
19
20
  showAfterDrag: false
20
21
  clustering: false
@@ -133,6 +134,11 @@ class ADF.GMap.Views.OverlayView extends ADF.MVC.Views.Base
133
134
 
134
135
  setMarker: (marker) ->
135
136
  @marker = marker
137
+
138
+ addContextMenu: () ->
139
+ if @marker
140
+ @contextMenu = new ADF.GMap.Views.ContextMenu({gElement : @marker, mapModel: @map})
141
+ @contextMenu.render()
136
142
 
137
143
  # Callback methods
138
144
  onRenderCompleted: () ->
@@ -1,12 +1,17 @@
1
1
  class ADF.GMap.Views.Polygon extends ADF.MVC.Views.Base
2
2
 
3
+ label: false
4
+ content: false
5
+
3
6
  initialize: () ->
4
7
  @mapView = @options.mapView
5
8
  @zone = @options.model
6
- @onShapeClickedCallback = @options.onShapeClicked
7
- @onPolygonDrawCompleted = @options.onPolygonDrawCompleted
8
- @onPolygonDrawStarted = @options.onPolygonDrawStarted
9
- @pathChanged = if typeof @options.pathChanged == 'function' then @options.pathChanged
9
+ @label = @options.label if @options.label?
10
+ @content = @options.content if @options.content?
11
+ @onShapeClicked = @options.onShapeClicked if typeof @options.onShapeClicked == 'function'
12
+ @onPolygonDrawCompleted = @options.onPolygonDrawCompleted if typeof @options.onPolygonDrawCompleted == 'function'
13
+ @onPolygonDrawStarted = @options.onPolygonDrawStarted if typeof @options.onPolygonDrawStarted == 'function'
14
+ @pathChanged = @options.pathChanged if typeof @options.pathChanged == 'function'
10
15
  @initialized = false
11
16
 
12
17
  initZone: (allowDraw) ->
@@ -16,44 +21,57 @@ class ADF.GMap.Views.Polygon extends ADF.MVC.Views.Base
16
21
  @startDrawing()
17
22
  else
18
23
  @zone.setPolygonMap( @map )
19
- @onPolygonDrawCompleted() if @onPolygonDrawCompleted? && allowDraw
24
+ @onPolygonDrawCompleted() if allowDraw
20
25
  @setPolygonHandlers()
26
+
21
27
  @mapView.getMap().addOverlay(@)
28
+ @setLabel() if @label
29
+ @onZoneInitialized()
22
30
 
23
31
  isClustering: () ->
24
32
  false
25
33
 
26
- setLabel: ( label ) ->
27
- bounds = new google.maps.LatLngBounds();
34
+ setContent: ( content ) ->
35
+ @content = content
36
+ @labelView.setContent( content )
37
+ @labelView.render()
38
+
39
+ setLabel: ( label = null) ->
40
+ @label = label if label
41
+ bounds = new google.maps.LatLngBounds()
28
42
 
29
43
  i = 0
30
44
  while i < @zone.getPolygon().getPath().length
31
45
  bounds.extend(@zone.getPolygon().getPath().getAt(i))
32
46
  i++
33
47
  point = bounds.getCenter()
34
-
48
+
35
49
  unless @labelView
36
50
  @labelView = new ADF.Map.Views.PolygonLabel
37
51
  point: point
38
52
  map : @mapView.getMap()
39
53
  model: @zone
40
- hidden: false
41
- label: label
54
+ hidden: true
55
+ label: @label
56
+ content: @content
57
+ clickable: false
58
+ template: @zonePopupTemplate
42
59
  else
43
- @labelView.point = point
44
- @labelView.label = label
45
- @labelView.render()
46
-
47
- startDrawing: ->
60
+ @labelView.overlay.setPosition(point)
61
+ @labelView.setLabel @label
62
+
63
+ setColors: (fillColor, strokeColor) ->
64
+ @zone.setColors(fillColor, strokeColor)
65
+
66
+ startDrawing: =>
48
67
  return if @zone.readOnly
49
68
  @drawingManager = new google.maps.drawing.DrawingManager
50
69
  drawingMode: google.maps.drawing.OverlayType.POLYGON
51
70
  polygonOptions: @zone.mapObject.polygon_options_defaults
52
71
  map: @map
53
72
  drawingControl: false
54
-
55
- @onPolygonStartDrawing()
56
- @onPolygonDrawStarted() if @onPolygonDrawStarted?
73
+
74
+ @onPolygonDrawStarted()
57
75
  google.maps.event.addListener @drawingManager, 'polygoncomplete', @polygonCompleteHandler
58
76
 
59
77
  # stopDrawing: ->
@@ -74,34 +92,58 @@ class ADF.GMap.Views.Polygon extends ADF.MVC.Views.Base
74
92
  setMap: (map) ->
75
93
  @zone.setPolygonMap(map)
76
94
 
95
+ # Depricated
77
96
  removeFromMap: () ->
78
97
  @zone.removeFromMap()
79
98
  @labelView.remove() if @labelView
99
+
100
+ remove: () ->
101
+ @zone.getPolygon().setMap(null)
102
+ @labelView.remove() if @labelView
80
103
 
81
104
  polygonCompleteHandler: ( newShape ) =>
82
105
  @zone.setPolygon( newShape )
83
106
  @setPolygonHandlers()
84
- @onPolygonDrawComplete()
85
- @onPolygonDrawCompleted() if @onPolygonDrawCompleted?
107
+ @onPolygonDrawCompleted()
86
108
 
109
+ onMouseOut: (e) =>
110
+ @labelView.hideOverlayAfterTime() if @labelView
111
+
112
+ onMouseOver: (e) =>
113
+ @labelView.openOverlayOnHover() if @labelView && !@isEditable() && @content
114
+
115
+ onMouseMove: (e) =>
116
+ @labelView.hide() if @isEditable() && @labelView && @labelView.opened
117
+
87
118
  setPolygonHandlers: () ->
88
- google.maps.event.addListener @zone.getPolygon(), 'click', @newShapeClickHandler
119
+ google.maps.event.addListener @zone.getPolygon(), 'click', @newShapeClickHandler if @isEditable()
120
+ google.maps.event.addListener @zone.getPolygon(), 'mouseout', @onMouseOut
121
+ google.maps.event.addListener @zone.getPolygon(), 'mouseover', @onMouseOver
122
+ google.maps.event.addListener @zone.getPolygon(), 'mousemove', @onMouseMove
89
123
  google.maps.event.addListener @map, 'click', @clearSelection
90
124
  google.maps.event.addListener @zone.getPolygon().getPath(), 'set_at', @pathChanged
91
125
  google.maps.event.addListener @zone.getPolygon().getPath(), 'insert_at', @pathChanged
92
126
  google.maps.event.addListener @zone.getPolygon().getPath(), 'remove_at', @pathChanged
93
127
  @zone.setEditable()
94
-
128
+
129
+
130
+ isEditable: () ->
131
+ @zone.getPolygon().getEditable()
132
+
95
133
  clearSelection: =>
96
134
  @zone.setUnEditable( )
97
135
 
98
136
  newShapeClickHandler: ( e ) =>
99
137
  @zone.setEditable()
100
138
  @onShapeClicked()
101
- @onShapeClickedCallback() if @onShapeClickedCallback?
102
-
139
+
140
+ addContextMenu: () ->
141
+ @contextMenu = new ADF.GMap.Views.ContextMenu({gElement : @zone.getPolygon(), mapModel: @mapView.getMap()})
142
+ @contextMenu.render()
143
+
103
144
  # Callback Methods
104
- onPolygonDrawComplete: ->
105
- onPolygonStartDrawing: ->
106
- onShapeClicked: ->
107
- pathChanged: =>
145
+ onPolygonDrawCompleted: =>
146
+ onPolygonDrawStarted: =>
147
+ onShapeClicked: =>
148
+ pathChanged: =>
149
+ onZoneInitialized: =>
@@ -5,12 +5,12 @@ class ADF.ImageUploader.Views.Main extends ADF.MVC.Views.Base
5
5
  events:
6
6
  "click .btn_close" : "onCloseClicked"
7
7
 
8
-
9
8
  initialize: () ->
10
9
  _.bindAll(this, 'render')
11
10
  @onComplete = @options.onComplete if @options.onComplete
12
- @onCancel = @options.onCancel if @options.onComplete
11
+ @onCancel = @options.onCancel if @options.onCancel
13
12
  @image = @options.image if @options.image
13
+ @template = @options.template if @options.template
14
14
 
15
15
  render: () ->
16
16
  options =
@@ -52,18 +52,16 @@ class ADF.ImageUploader.Views.Main extends ADF.MVC.Views.Base
52
52
  @image = responseJSON.uploader_url
53
53
  @showImage(@image)
54
54
  @$(".btn_close").show()
55
- if @onComplete
56
- @onComplete(responseJSON)
55
+ @onComplete(responseJSON) if @onComplete
57
56
 
58
57
  onCloseClicked: () ->
59
58
  @$(".uploaded_picture").hide()
60
59
  @$(".btn_close").hide()
61
60
  @$(".image_holder").show()
62
- if @onCancel
63
- @onCancel()
61
+ @onCancel() if @onCancel
64
62
  return false
65
63
 
66
64
  showImage: (image_url) ->
67
65
  @$(".image_holder").hide()
68
66
  @$(".uploaded_picture").attr("src", image_url)
69
- @$(".uploaded_picture").show()
67
+ @$(".uploaded_picture").show()
@@ -78,5 +78,9 @@ class ADF.Map.Views.Main extends ADF.MVC.Views.Base
78
78
  @model.getGMap().setZoom(@model.getGMap().getZoom() - 1)
79
79
  @setCenterWithOffset(@model.getGMap().getCenter(), 0, -300) if centerWithOffset
80
80
 
81
+ addContextMenu: () ->
82
+ @contextMenu = new ADF.GMap.Views.ContextMenu({gElement : @getGMap(), mapModel: @model})
83
+ @contextMenu.render()
84
+
81
85
  # Callback methods
82
86
  onRenderCompleted: () ->
@@ -67,5 +67,9 @@ class ADF.Minimap.Views.Main extends ADF.MVC.Views.Base
67
67
  @model.getGMap().setZoom(@model.getGMap().getZoom() - 1)
68
68
  @setCenterWithOffset(@model.getGMap().getCenter(), 0, -300) if centerWithOffset
69
69
 
70
+ addContextMenu: () ->
71
+ @contextMenu = new ADF.GMap.Views.ContextMenu({gElement : @getGMap(), mapModel: @model})
72
+ @contextMenu.render()
73
+
70
74
  # Callback methods
71
75
  onRenderCompleted: () ->
@@ -5,10 +5,13 @@ class ADF.Overlay.Views.FlashOverlay extends ADF.GMap.Views.OverlayView
5
5
  hoverable: true
6
6
  calibration: [0, -16, -20, 0]
7
7
  mouseout: true
8
+ openOnClick: false
8
9
 
9
10
  constructor: (options) ->
10
11
  super(options)
11
12
  @pushOverlay()
13
+ @eventBus.on "ADF.GMap.Views.ContextMenu.isShowed", @setUnHoverable
14
+ @eventBus.on "ADF.GMap.Views.ContextMenu.isHidden", @setHoverable
12
15
 
13
16
  onMarkerMouseOver: () =>
14
17
  @openOverlayOnHover()
@@ -40,6 +43,13 @@ class ADF.Overlay.Views.FlashOverlay extends ADF.GMap.Views.OverlayView
40
43
  arr = @getPositionArray()
41
44
  @setPosition(arr[0], arr[1])
42
45
 
46
+ setUnHoverable: () =>
47
+ @hoverable = false
48
+ @hide()
49
+
50
+ setHoverable: () =>
51
+ @hoverable = true
52
+
43
53
  getPositionArray: () ->
44
54
  halfWidth = @map.getMapElement().width() / 2
45
55
  halfHeight = @map.getMapElement().height() / 2
@@ -1,17 +1,34 @@
1
- class ADF.Map.Views.PolygonLabel extends ADF.Overlay.Views.Overlay
1
+ class ADF.Map.Views.PolygonLabel extends ADF.Overlay.Views.FlashOverlay
2
2
 
3
3
  template: JST['socmap_adf/modules/overlay/templates/polygon_label']
4
4
  dontRenderMarker: true
5
+ mouseout: false
6
+ hoverable: false
5
7
 
6
8
  initialize: () ->
7
9
  super()
8
10
  @label = @options.label
11
+ @content = @options.content
12
+ @template = @options.template if @options.template
13
+ @customMarker = new ADF.Zone.Views.LabelMarker()
14
+
15
+ setContent: (content) ->
16
+ @content = content
9
17
 
10
18
  render: ->
11
- $(@el).html( @template( {label: @label } ) )
19
+ $(@el).html( @template() )
12
20
  @onRenderCompleted()
13
- @left = 400
14
- @top = 45
15
21
  @initResize()
16
22
  @redraw()
17
- @
23
+ @onRenderCompleted()
24
+ @
25
+
26
+ onRenderCompleted: () ->
27
+ @$(".content").html(@content)
28
+ $(@el).hover(@openOverlayOnHover, @hideOverlayAfterTime)
29
+
30
+ onOverlayShowed: () =>
31
+ @_setScrollable()
32
+
33
+ _setScrollable: () =>
34
+ @$(".scrollable").nanoScroller({autoresize: true})
@@ -55,6 +55,13 @@ class ADF.Zone.Models.Polygon extends Backbone.Model
55
55
  createPolygonFromPoints: ( options ) ->
56
56
  @GPolygon.setOptions options
57
57
  @setEditable()
58
+
59
+ setColors: (fillColor, strokeColor) ->
60
+ @GPolygon.setOptions({fillColor: fillColor, strokeColor: strokeColor})
61
+ @polygon_options_defaults["strokeColor"] = strokeColor
62
+ @polygon_options_defaults["fillColor"] = fillColor
63
+ @polygon_options_readonly["strokeColor"] = strokeColor
64
+ @polygon_options_readonly["fillColor"] = fillColor
58
65
 
59
66
  getCoordinates: ->
60
67
  points = []
@@ -0,0 +1,26 @@
1
+ class ADF.Zone.Views.LabelMarker
2
+
3
+ icon: null
4
+ iconUrl: null
5
+ iconSize: new google.maps.Size(1,20)
6
+ iconOrigin: new google.maps.Point(0,0)
7
+ iconAnchor: new google.maps.Point(0,0)
8
+
9
+ shadow: null
10
+
11
+ shape: null
12
+
13
+ constructor: () ->
14
+ @initMarkerImages()
15
+
16
+ initMarkerImages: () ->
17
+ @icon = new google.maps.MarkerImage(@iconUrl, @iconSize, @iconOrigin, @iconAnchor)
18
+
19
+ getIcon: () ->
20
+ @icon
21
+
22
+ getShadow: () ->
23
+ @shadow
24
+
25
+ getShape: () ->
26
+ @shape
@@ -1,3 +1,3 @@
1
1
  module SocmapAdf
2
- VERSION = "0.0.10"
2
+ VERSION = "0.0.11"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: socmap_adf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-10-23 00:00:00.000000000 Z
14
+ date: 2012-10-25 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -69,6 +69,7 @@ files:
69
69
  - lib/assets/javascripts/socmap_adf/lib/.DS_Store
70
70
  - lib/assets/javascripts/socmap_adf/lib/adf_delegate.js.coffee
71
71
  - lib/assets/javascripts/socmap_adf/lib/adf_view.js.coffee
72
+ - lib/assets/javascripts/socmap_adf/lib/vendor/file_uploader/fileuploader.js
72
73
  - lib/assets/javascripts/socmap_adf/modules/.DS_Store
73
74
  - lib/assets/javascripts/socmap_adf/modules/cluster/init.js.coffee
74
75
  - lib/assets/javascripts/socmap_adf/modules/cluster/lib/elycharts.js
@@ -101,7 +102,9 @@ files:
101
102
  - lib/assets/javascripts/socmap_adf/modules/form/views/field_sets.js.coffee
102
103
  - lib/assets/javascripts/socmap_adf/modules/gmap/.DS_Store
103
104
  - lib/assets/javascripts/socmap_adf/modules/gmap/init.js.coffee
105
+ - lib/assets/javascripts/socmap_adf/modules/gmap/templates/context_menu_item.jst.eco
104
106
  - lib/assets/javascripts/socmap_adf/modules/gmap/views/.DS_Store
107
+ - lib/assets/javascripts/socmap_adf/modules/gmap/views/context_menu.js.coffee
105
108
  - lib/assets/javascripts/socmap_adf/modules/gmap/views/custom_marker.js.coffee
106
109
  - lib/assets/javascripts/socmap_adf/modules/gmap/views/marker.js.coffee
107
110
  - lib/assets/javascripts/socmap_adf/modules/gmap/views/marker_with_label.js
@@ -177,6 +180,7 @@ files:
177
180
  - lib/assets/javascripts/socmap_adf/modules/zone/init.js.coffee
178
181
  - lib/assets/javascripts/socmap_adf/modules/zone/models/polygon.js.coffee
179
182
  - lib/assets/javascripts/socmap_adf/modules/zone/templates/main.jst.eco
183
+ - lib/assets/javascripts/socmap_adf/modules/zone/views/label_marker.js.coffee
180
184
  - lib/assets/javascripts/socmap_adf/modules/zone/views/main.js.coffee
181
185
  - lib/assets/javascripts/socmap_adf/modules/zone/views/test.js.coffee
182
186
  - lib/assets/javascripts/socmap_adf/requiress.js.coffee.erb
@@ -203,7 +207,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
203
207
  version: '0'
204
208
  segments:
205
209
  - 0
206
- hash: -302836586570035622
210
+ hash: 57803292243622167
207
211
  required_rubygems_version: !ruby/object:Gem::Requirement
208
212
  none: false
209
213
  requirements:
@@ -212,7 +216,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
212
216
  version: '0'
213
217
  segments:
214
218
  - 0
215
- hash: -302836586570035622
219
+ hash: 57803292243622167
216
220
  requirements: []
217
221
  rubyforge_project: socmap_adf
218
222
  rubygems_version: 1.8.24