socmap_adf 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -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