socmap_adf 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +10 -0
- data/.rvmrc +81 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +17 -0
- data/MIT-LICENSE +20 -0
- data/README.md +3 -0
- data/Rakefile +36 -0
- data/lib/assets/.gitkeep +0 -0
- data/lib/assets/javascripts/.DS_Store +0 -0
- data/lib/assets/javascripts/socmap_adf/.DS_Store +0 -0
- data/lib/assets/javascripts/socmap_adf/init.js.coffee.erb +9 -0
- data/lib/assets/javascripts/socmap_adf/lib/adf_delegate.js.coffee +13 -0
- data/lib/assets/javascripts/socmap_adf/lib/adf_view.js.coffee +7 -0
- data/lib/assets/javascripts/socmap_adf/modules/.DS_Store +0 -0
- data/lib/assets/javascripts/socmap_adf/modules/cluster/init.js.coffee +11 -0
- data/lib/assets/javascripts/socmap_adf/modules/cluster/lib/elycharts.js +3769 -0
- data/lib/assets/javascripts/socmap_adf/modules/cluster/lib/raphael.js +5815 -0
- data/lib/assets/javascripts/socmap_adf/modules/cluster/templates/chart.jst.eco +6 -0
- data/lib/assets/javascripts/socmap_adf/modules/cluster/views/chart.js.coffee +107 -0
- data/lib/assets/javascripts/socmap_adf/modules/cluster/views/chart_icon.js.coffee +106 -0
- data/lib/assets/javascripts/socmap_adf/modules/cluster/views/cluster.js.coffee +127 -0
- data/lib/assets/javascripts/socmap_adf/modules/cluster/views/default_icon.js.coffee +170 -0
- data/lib/assets/javascripts/socmap_adf/modules/cluster/views/main.js.coffee +10 -0
- data/lib/assets/javascripts/socmap_adf/modules/cluster/views/marker_clusterer.js.coffee +358 -0
- data/lib/assets/javascripts/socmap_adf/modules/file_uploader/init.js.coffee +7 -0
- data/lib/assets/javascripts/socmap_adf/modules/file_uploader/templates/existing_file.jst.eco +10 -0
- data/lib/assets/javascripts/socmap_adf/modules/file_uploader/templates/file.jst.eco +3 -0
- data/lib/assets/javascripts/socmap_adf/modules/file_uploader/templates/main.jst.eco +7 -0
- data/lib/assets/javascripts/socmap_adf/modules/file_uploader/templates/uploading.jst.eco +3 -0
- data/lib/assets/javascripts/socmap_adf/modules/file_uploader/views/main.js.coffee +76 -0
- data/lib/assets/javascripts/socmap_adf/modules/form/init.js.coffee +9 -0
- data/lib/assets/javascripts/socmap_adf/modules/form/models/base.js.coffee +73 -0
- data/lib/assets/javascripts/socmap_adf/modules/form/models/error.js.coffee +12 -0
- data/lib/assets/javascripts/socmap_adf/modules/form/models/field_binder.js.coffee +104 -0
- data/lib/assets/javascripts/socmap_adf/modules/form/models/validator.js.coffee +65 -0
- data/lib/assets/javascripts/socmap_adf/modules/form/templates/error_field.jst.eco +7 -0
- data/lib/assets/javascripts/socmap_adf/modules/form/templates/field_set.jst.eco +6 -0
- data/lib/assets/javascripts/socmap_adf/modules/form/templates/field_set_button.jst.eco +1 -0
- data/lib/assets/javascripts/socmap_adf/modules/form/templates/field_sets.jst.eco +2 -0
- data/lib/assets/javascripts/socmap_adf/modules/form/views/base.js.coffee +9 -0
- data/lib/assets/javascripts/socmap_adf/modules/form/views/field_set.js.coffee +88 -0
- data/lib/assets/javascripts/socmap_adf/modules/form/views/field_set_with_button.js.coffee +38 -0
- data/lib/assets/javascripts/socmap_adf/modules/form/views/field_sets.js.coffee +81 -0
- data/lib/assets/javascripts/socmap_adf/modules/gmap/.DS_Store +0 -0
- data/lib/assets/javascripts/socmap_adf/modules/gmap/init.js.coffee +6 -0
- data/lib/assets/javascripts/socmap_adf/modules/gmap/views/.DS_Store +0 -0
- data/lib/assets/javascripts/socmap_adf/modules/gmap/views/custom_marker.js.coffee +36 -0
- data/lib/assets/javascripts/socmap_adf/modules/gmap/views/marker.js.coffee +72 -0
- data/lib/assets/javascripts/socmap_adf/modules/gmap/views/marker_with_label.js +566 -0
- data/lib/assets/javascripts/socmap_adf/modules/gmap/views/overlay.js.coffee +237 -0
- data/lib/assets/javascripts/socmap_adf/modules/gmap/views/overlay_view.js.coffee +143 -0
- data/lib/assets/javascripts/socmap_adf/modules/gmap/views/polygon.js.coffee +107 -0
- data/lib/assets/javascripts/socmap_adf/modules/image_uploader/init.js.coffee +7 -0
- data/lib/assets/javascripts/socmap_adf/modules/image_uploader/templates/main.jst.eco +10 -0
- data/lib/assets/javascripts/socmap_adf/modules/image_uploader/views/main.js.coffee +69 -0
- data/lib/assets/javascripts/socmap_adf/modules/map/.DS_Store +0 -0
- data/lib/assets/javascripts/socmap_adf/modules/map/init.js.coffee +9 -0
- data/lib/assets/javascripts/socmap_adf/modules/map/models/custom_map.js.coffee +1 -0
- data/lib/assets/javascripts/socmap_adf/modules/map/models/map.js.coffee +63 -0
- data/lib/assets/javascripts/socmap_adf/modules/map/templates/main.jst.eco +1 -0
- data/lib/assets/javascripts/socmap_adf/modules/map/templates/moving_pin.jst.eco +11 -0
- data/lib/assets/javascripts/socmap_adf/modules/map/templates/tooltip.jst.eco +1 -0
- data/lib/assets/javascripts/socmap_adf/modules/map/views/google_marker_clusterer.js.coffee +11 -0
- data/lib/assets/javascripts/socmap_adf/modules/map/views/main.js.coffee +79 -0
- data/lib/assets/javascripts/socmap_adf/modules/map/views/moving_pin.js.coffee +47 -0
- data/lib/assets/javascripts/socmap_adf/modules/map/views/tooltip.js.coffee +46 -0
- data/lib/assets/javascripts/socmap_adf/modules/marker/init.js.coffee +6 -0
- data/lib/assets/javascripts/socmap_adf/modules/marker/views/.DS_Store +0 -0
- data/lib/assets/javascripts/socmap_adf/modules/marker/views/main.js.coffee +132 -0
- data/lib/assets/javascripts/socmap_adf/modules/minimap/init.js.coffee +9 -0
- data/lib/assets/javascripts/socmap_adf/modules/minimap/models/minimap.js.coffee +36 -0
- data/lib/assets/javascripts/socmap_adf/modules/minimap/templates/moving_pin.jst.eco +11 -0
- data/lib/assets/javascripts/socmap_adf/modules/minimap/templates/tooltip.jst.eco +1 -0
- data/lib/assets/javascripts/socmap_adf/modules/minimap/views/main.js.coffee +68 -0
- data/lib/assets/javascripts/socmap_adf/modules/minimap/views/moving_pin.js.coffee +55 -0
- data/lib/assets/javascripts/socmap_adf/modules/minimap/views/tooltip.js.coffee +47 -0
- data/lib/assets/javascripts/socmap_adf/modules/mvc/init.js.coffee +6 -0
- data/lib/assets/javascripts/socmap_adf/modules/mvc/views/base.js.coffee +5 -0
- data/lib/assets/javascripts/socmap_adf/modules/overlay/.DS_Store +0 -0
- data/lib/assets/javascripts/socmap_adf/modules/overlay/init.js.coffee +10 -0
- data/lib/assets/javascripts/socmap_adf/modules/overlay/models/overlay.js.coffee +4 -0
- data/lib/assets/javascripts/socmap_adf/modules/overlay/templates/main.jst.eco +1 -0
- data/lib/assets/javascripts/socmap_adf/modules/overlay/templates/polygon_label.jst.eco +1 -0
- data/lib/assets/javascripts/socmap_adf/modules/overlay/views/.DS_Store +0 -0
- data/lib/assets/javascripts/socmap_adf/modules/overlay/views/main.js.coffee +6 -0
- data/lib/assets/javascripts/socmap_adf/modules/overlay/views/overlay.js.coffee +55 -0
- data/lib/assets/javascripts/socmap_adf/modules/overlay/views/polygon_label.js.coffee +17 -0
- data/lib/assets/javascripts/socmap_adf/modules/overlay_push/init.js.coffee +8 -0
- data/lib/assets/javascripts/socmap_adf/modules/overlay_push/templates/colibration.jst.eco +4 -0
- data/lib/assets/javascripts/socmap_adf/modules/overlay_push/views/new.js.coffee +32 -0
- data/lib/assets/javascripts/socmap_adf/modules/popup/init.js.coffee +7 -0
- data/lib/assets/javascripts/socmap_adf/modules/popup/templates/base.jst.eco +5 -0
- data/lib/assets/javascripts/socmap_adf/modules/popup/templates/basic.jst.eco +5 -0
- data/lib/assets/javascripts/socmap_adf/modules/popup/views/base.js.coffee +98 -0
- data/lib/assets/javascripts/socmap_adf/modules/popup/views/basic.js.coffee +86 -0
- data/lib/assets/javascripts/socmap_adf/modules/sidebar/collections/empty +0 -0
- data/lib/assets/javascripts/socmap_adf/modules/sidebar/init.js.coffee +11 -0
- data/lib/assets/javascripts/socmap_adf/modules/sidebar/models/slice.js.coffee +0 -0
- data/lib/assets/javascripts/socmap_adf/modules/sidebar/templates/bottomlink.jst.eco +1 -0
- data/lib/assets/javascripts/socmap_adf/modules/sidebar/templates/bottomlinkaction.jst.eco +2 -0
- data/lib/assets/javascripts/socmap_adf/modules/sidebar/templates/content.jst.eco +2 -0
- data/lib/assets/javascripts/socmap_adf/modules/sidebar/templates/sidebar.jst.eco +3 -0
- data/lib/assets/javascripts/socmap_adf/modules/sidebar/templates/tab.jst.eco +3 -0
- data/lib/assets/javascripts/socmap_adf/modules/sidebar/templates/tabs.jst.eco +3 -0
- data/lib/assets/javascripts/socmap_adf/modules/sidebar/views/bottomlink.js.coffee +41 -0
- data/lib/assets/javascripts/socmap_adf/modules/sidebar/views/content.js.coffee +63 -0
- data/lib/assets/javascripts/socmap_adf/modules/sidebar/views/sidebar.js.coffee +163 -0
- data/lib/assets/javascripts/socmap_adf/modules/sidebar/views/tab.js.coffee +52 -0
- data/lib/assets/javascripts/socmap_adf/modules/sidebar/views/tabcontent.js.coffee +23 -0
- data/lib/assets/javascripts/socmap_adf/modules/sidebar/views/tabs.js.coffee +63 -0
- data/lib/assets/javascripts/socmap_adf/modules/zone/collections/points.js.coffee +1 -0
- data/lib/assets/javascripts/socmap_adf/modules/zone/collections/zones.js.coffee +2 -0
- data/lib/assets/javascripts/socmap_adf/modules/zone/init.js.coffee +11 -0
- data/lib/assets/javascripts/socmap_adf/modules/zone/models/polygon.js.coffee +72 -0
- data/lib/assets/javascripts/socmap_adf/modules/zone/templates/main.jst.eco +0 -0
- data/lib/assets/javascripts/socmap_adf/modules/zone/views/main.js.coffee +6 -0
- data/lib/assets/javascripts/socmap_adf/modules/zone/views/test.js.coffee +17 -0
- data/lib/assets/javascripts/socmap_adf/requiress.js.coffee.erb +3 -0
- data/lib/generators/install_generator.rb +15 -0
- data/lib/generators/templates/socmap.rb.erb +9 -0
- data/lib/socmap_adf/engine.rb +5 -0
- data/lib/socmap_adf/version.rb +3 -0
- data/lib/socmap_adf.rb +17 -0
- data/lib/tasks/socmap-adf_tasks.rake +4 -0
- data/socmap_adf.gemspec +26 -0
- data/test/socmap-adf_test.rb +7 -0
- data/test/test_helper.rb +15 -0
- metadata +202 -0
@@ -0,0 +1,65 @@
|
|
1
|
+
class ADF.Form.Models.Validator
|
2
|
+
|
3
|
+
valid: false
|
4
|
+
|
5
|
+
constructor: (model, attribute, validationType, options) ->
|
6
|
+
@model = model
|
7
|
+
@attribute = attribute
|
8
|
+
@validationType = validationType
|
9
|
+
@settings =
|
10
|
+
extra: null
|
11
|
+
message: " data not valid of " + @validationType
|
12
|
+
size: null
|
13
|
+
$.extend @settings, options
|
14
|
+
@model.on "change", @onValueChanged
|
15
|
+
|
16
|
+
onValueChanged: () =>
|
17
|
+
if @model.hasChanged @attribute
|
18
|
+
@validate()
|
19
|
+
@model.onValueChanged()
|
20
|
+
|
21
|
+
validate: () ->
|
22
|
+
switch @validationType
|
23
|
+
when "present" then error = @checkPresent()
|
24
|
+
when "size" then error = @checkSize()
|
25
|
+
when "email" then error = @checkEmail()
|
26
|
+
when "number" then error = @checkNumber()
|
27
|
+
when "alpha" then error = @checkAlpha()
|
28
|
+
when "regexp" then error = @checkRegexp()
|
29
|
+
when "confirm" then error = @checkConfirm()
|
30
|
+
if error
|
31
|
+
@model.errors.push new ADF.Form.Models.Error(@validationType, @settings.message, @attribute, @model.get(@attribute))
|
32
|
+
@valid = false
|
33
|
+
else
|
34
|
+
@valid = true
|
35
|
+
|
36
|
+
checkPresent: () ->
|
37
|
+
!(@model.get(@attribute) && @model.get(@attribute) != null && @model.get(@attribute).toString().length > 0)
|
38
|
+
|
39
|
+
checkSize: () ->
|
40
|
+
!(@model.get(@attribute) && @model.get(@attribute) != null && @model.get(@attribute).toString().length >= @settings.size)
|
41
|
+
|
42
|
+
checkConfirm: () ->
|
43
|
+
@model.get(@attribute) != @model.get(@settings.confirm_field)
|
44
|
+
|
45
|
+
checkEmail: () ->
|
46
|
+
return false if not @model.get(@attribute)?
|
47
|
+
reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/
|
48
|
+
!reg.test @model.get(@attribute).toString()
|
49
|
+
|
50
|
+
checkNumber: () ->
|
51
|
+
if !isNaN(parseFloat(@model.get(@attribute))) && isFinite(@model.get(@attribute)) then false else true
|
52
|
+
|
53
|
+
checkAlpha: () ->
|
54
|
+
return false if not @model.get(@attribute)?
|
55
|
+
reg = /[^a-zāčēģīķļņšūž ]/gi
|
56
|
+
reg.test @model.get(@attribute).toString()
|
57
|
+
|
58
|
+
checkRegexp:() ->
|
59
|
+
if @settings.regexp.test @model.get(@attribute).toString() then false else true
|
60
|
+
|
61
|
+
isValid: () ->
|
62
|
+
@valid
|
63
|
+
|
64
|
+
getAttribute: () ->
|
65
|
+
@attribute
|
@@ -0,0 +1 @@
|
|
1
|
+
<div class="btn_input grey"><input type="button" name="next_step" value="Nākamais solis" disabled="disabled"/></div>
|
@@ -0,0 +1,88 @@
|
|
1
|
+
class ADF.Form.Views.FieldSet extends ADF.Form.Views.Base
|
2
|
+
|
3
|
+
tabSetContainer: JST['socmap_adf/modules/form/templates/field_set']
|
4
|
+
title: " - "
|
5
|
+
index: 0
|
6
|
+
|
7
|
+
constructor: (options) ->
|
8
|
+
super(options)
|
9
|
+
@done = false
|
10
|
+
@expanded = false
|
11
|
+
@changeToClose()
|
12
|
+
|
13
|
+
@fieldSetsObject = null
|
14
|
+
options.model.setView(@) if options.model
|
15
|
+
if options.closed == false
|
16
|
+
@changeToOpen()
|
17
|
+
|
18
|
+
render: () ->
|
19
|
+
$(@el).html(@tabSetContainer)
|
20
|
+
@$(".tab_set_content").html(@template(@model.toJSON()))
|
21
|
+
@$(".field_wrap_all").hide()
|
22
|
+
@$(".tab_title").text(@title)
|
23
|
+
@bindFieldTab()
|
24
|
+
@onBind()
|
25
|
+
return this
|
26
|
+
|
27
|
+
getIndex: () ->
|
28
|
+
@index
|
29
|
+
|
30
|
+
setIndex: (index) ->
|
31
|
+
@index = index
|
32
|
+
|
33
|
+
bindFieldTab: () ->
|
34
|
+
@$(".tab_wrap").bind "click", @onTabClicked
|
35
|
+
|
36
|
+
onTabClicked: () =>
|
37
|
+
if @expanded
|
38
|
+
@contract()
|
39
|
+
else
|
40
|
+
@expand()
|
41
|
+
|
42
|
+
setFieldSetsObject: (obj) =>
|
43
|
+
@fieldSetsObject = obj
|
44
|
+
|
45
|
+
expand: () =>
|
46
|
+
if !@closed
|
47
|
+
@expanded = true
|
48
|
+
@fieldSetsObject.onFieldSetExpand(@)
|
49
|
+
@$(".field_wrap_all").slideDown("normal", @onExpand)
|
50
|
+
@$(".tab_wrap_all").addClass("open")
|
51
|
+
|
52
|
+
changeToOpen: () ->
|
53
|
+
@closed = false
|
54
|
+
@$(".tab_wrap").css("cursor", "pointer")
|
55
|
+
|
56
|
+
changeToClose: () ->
|
57
|
+
@closed = true
|
58
|
+
@$(".tab_wrap").css("cursor", "default")
|
59
|
+
|
60
|
+
contract: () =>
|
61
|
+
@$(".field_wrap_all").slideUp()
|
62
|
+
@expanded = false
|
63
|
+
@$(".tab_wrap_all").removeClass("open")
|
64
|
+
@onContract()
|
65
|
+
|
66
|
+
openNextFieldSet: () ->
|
67
|
+
@setDone()
|
68
|
+
@fieldSetsObject.openNextFieldSet()
|
69
|
+
|
70
|
+
setDone: () =>
|
71
|
+
@done = true
|
72
|
+
@onDone()
|
73
|
+
@$(".tab_wrap_all").addClass("done")
|
74
|
+
|
75
|
+
getModel: () ->
|
76
|
+
@model
|
77
|
+
|
78
|
+
showError: (message) ->
|
79
|
+
@fieldSetsObject.showError(message) if @fieldSetsObject
|
80
|
+
|
81
|
+
hideError: () ->
|
82
|
+
@fieldSetsObject.hideError() if @fieldSetsObject
|
83
|
+
|
84
|
+
# Callbacks
|
85
|
+
onDone: () ->
|
86
|
+
onBind: () ->
|
87
|
+
onExpand: () ->
|
88
|
+
onContract: () ->
|
@@ -0,0 +1,38 @@
|
|
1
|
+
class ADF.Form.Views.FieldSetWithButton extends ADF.Form.Views.FieldSet
|
2
|
+
|
3
|
+
fieldSetButton: JST['socmap_adf/modules/form/templates/field_set_button']
|
4
|
+
|
5
|
+
constructor: (options) ->
|
6
|
+
super(options)
|
7
|
+
@buttonTitle = options.buttonTitle
|
8
|
+
|
9
|
+
render: () ->
|
10
|
+
$(@el).html(@tabSetContainer())
|
11
|
+
@$(".tab_set_content").html(@template( @model.toJSON() ))
|
12
|
+
@$(".tab_set_content").append(@fieldSetButton)
|
13
|
+
@$(".field_wrap_all").hide()
|
14
|
+
@$(".tab_title").text(@title)
|
15
|
+
@$(".btn_input input").val(@buttonTitle) if @buttonTitle?
|
16
|
+
@bindFieldTab()
|
17
|
+
@bindButton()
|
18
|
+
@onBind()
|
19
|
+
@
|
20
|
+
|
21
|
+
bindButton: () ->
|
22
|
+
@$(".btn_input input").bind "mousedown", @onInputClicked
|
23
|
+
|
24
|
+
onDataValid: () ->
|
25
|
+
@$(".btn_input").removeClass("grey")
|
26
|
+
@$(".btn_input").addClass("green")
|
27
|
+
@$(".btn_input").find("input").removeAttr("disabled")
|
28
|
+
@hideError()
|
29
|
+
|
30
|
+
onDataInvalid: () ->
|
31
|
+
@$(".btn_input").removeClass("green")
|
32
|
+
@$(".btn_input").addClass("grey")
|
33
|
+
@$(".btn_input").find("input").attr("disabled", "disabled")
|
34
|
+
|
35
|
+
onInputClicked: () =>
|
36
|
+
@hideError()
|
37
|
+
if @model.isValid()
|
38
|
+
@openNextFieldSet()
|
@@ -0,0 +1,81 @@
|
|
1
|
+
class ADF.Form.Views.FieldSets extends ADF.MVC.Views.Base
|
2
|
+
|
3
|
+
template: JST['socmap_adf/modules/form/templates/field_sets']
|
4
|
+
errorTemplate: JST['socmap_adf/modules/form/templates/error_field']
|
5
|
+
|
6
|
+
constructor: (options) ->
|
7
|
+
super(options)
|
8
|
+
@current = 0
|
9
|
+
@count = 0
|
10
|
+
@fieldSets = []
|
11
|
+
@done = false
|
12
|
+
|
13
|
+
render: () ->
|
14
|
+
$(@el).html(@template)
|
15
|
+
@onBind()
|
16
|
+
@checkFieldSets()
|
17
|
+
@openFieldSet(0)
|
18
|
+
@addErrorField()
|
19
|
+
return this
|
20
|
+
|
21
|
+
showError: (message) ->
|
22
|
+
@$(".error_message").html(message)
|
23
|
+
@$(".error_placeholder").show()
|
24
|
+
|
25
|
+
hideError: () ->
|
26
|
+
@$(".error_placeholder").hide()
|
27
|
+
|
28
|
+
addErrorField: () ->
|
29
|
+
@$(".form_tabs").append(@errorTemplate)
|
30
|
+
|
31
|
+
addFieldSet: (fieldSet) ->
|
32
|
+
fieldSet.setFieldSetsObject(@)
|
33
|
+
fieldSet.setElement(@make("li"))
|
34
|
+
fieldSet.setIndex(@count)
|
35
|
+
@fieldSets.push(fieldSet)
|
36
|
+
@$(".form_tabs").append(fieldSet.render().el)
|
37
|
+
@count++
|
38
|
+
|
39
|
+
checkFieldSets: () ->
|
40
|
+
for fieldSet in @fieldSets
|
41
|
+
if fieldSet.getModel().validateFields()
|
42
|
+
fieldSet.changeToOpen()
|
43
|
+
fieldSet.setDone()
|
44
|
+
@checkDone()
|
45
|
+
|
46
|
+
else
|
47
|
+
break
|
48
|
+
# @openFieldSet(@current)
|
49
|
+
|
50
|
+
openFieldSet: (index) ->
|
51
|
+
@current = index
|
52
|
+
fieldSet = @fieldSets[index]
|
53
|
+
if fieldSet
|
54
|
+
fieldSet.getModel().validateFields()
|
55
|
+
fieldSet.changeToOpen()
|
56
|
+
fieldSet.expand()
|
57
|
+
|
58
|
+
checkDone: () ->
|
59
|
+
if @current + 1 < @fieldSets.length
|
60
|
+
@current++
|
61
|
+
else
|
62
|
+
@setDone()
|
63
|
+
|
64
|
+
openNextFieldSet: () ->
|
65
|
+
@checkDone()
|
66
|
+
@openFieldSet @current
|
67
|
+
|
68
|
+
onFieldSetExpand: (expandFieldSet) ->
|
69
|
+
current = expandFieldSet
|
70
|
+
@current = current.getIndex()
|
71
|
+
for fieldSet in @fieldSets
|
72
|
+
if fieldSet != expandFieldSet
|
73
|
+
fieldSet.contract()
|
74
|
+
|
75
|
+
setDone: () ->
|
76
|
+
@done = true
|
77
|
+
@onDone()
|
78
|
+
|
79
|
+
# Callbacks
|
80
|
+
onBind: () ->
|
81
|
+
onDone: () ->
|
Binary file
|
Binary file
|
@@ -0,0 +1,36 @@
|
|
1
|
+
class ADF.GMap.Views.CustomMarker
|
2
|
+
|
3
|
+
icon: null
|
4
|
+
iconUrl: 'assets/markers/green_marker.png'
|
5
|
+
iconSize: new google.maps.Size(29,50)
|
6
|
+
iconOrigin: new google.maps.Point(0,0)
|
7
|
+
iconAnchor: new google.maps.Point(15,50)
|
8
|
+
|
9
|
+
shadow: null
|
10
|
+
shadowUrl: 'assets/markers/green_marker_shadow.png'
|
11
|
+
shadowSize: new google.maps.Size(57,50)
|
12
|
+
shadowOrigin: new google.maps.Point(0,0)
|
13
|
+
shadowAnchor: new google.maps.Point(15,50)
|
14
|
+
|
15
|
+
shape: null
|
16
|
+
shapeCoord: [17,0,20,1,22,2,23,3,24,4,25,5,26,6,26,7,27,8,27,9,28,10,28,11,28,12,28,13,28,14,28,15,28,16,28,17,28,18,27,19,27,20,27,21,26,22,25,23,25,24,24,25,23,26,23,27,22,28,21,29,21,30,21,31,22,32,23,33,23,34,24,35,24,36,25,37,25,38,25,39,25,40,25,41,25,42,24,43,24,44,23,45,23,46,22,47,21,48,19,49,10,49,8,48,7,47,7,46,6,45,5,44,4,43,4,42,4,41,4,40,4,39,4,38,4,37,4,36,4,35,5,34,6,33,6,32,8,31,8,30,7,29,6,28,6,27,5,26,4,25,4,24,3,23,2,22,2,21,1,20,1,19,0,18,0,17,0,16,0,15,0,14,0,13,0,12,0,11,1,10,1,9,1,8,2,7,2,6,3,5,4,4,5,3,6,2,8,1,11,0,17,0]
|
17
|
+
|
18
|
+
constructor: () ->
|
19
|
+
@initMarkerImages()
|
20
|
+
|
21
|
+
initMarkerImages: () ->
|
22
|
+
@icon = new google.maps.MarkerImage(@iconUrl, @iconSize, @iconOrigin, @iconAnchor)
|
23
|
+
@shadow = new google.maps.MarkerImage(@shadowUrl, @shadowSize, @shadowOrigin, @shadowAnchor) if @shadowUrl
|
24
|
+
@shape = {
|
25
|
+
coord: @shapeCoord
|
26
|
+
type: 'poly'
|
27
|
+
}
|
28
|
+
|
29
|
+
getIcon: () ->
|
30
|
+
@icon
|
31
|
+
|
32
|
+
getShadow: () ->
|
33
|
+
@shadow
|
34
|
+
|
35
|
+
getShape: () ->
|
36
|
+
@shape
|
@@ -0,0 +1,72 @@
|
|
1
|
+
class ADF.GMap.Views.Marker extends google.maps.OverlayView
|
2
|
+
|
3
|
+
in_zoom: false
|
4
|
+
|
5
|
+
constructor: (map, point, content, width, height) ->
|
6
|
+
@setMap(map)
|
7
|
+
@point = point
|
8
|
+
@content = content
|
9
|
+
@width = width
|
10
|
+
@height = height
|
11
|
+
@bindMapEvents()
|
12
|
+
|
13
|
+
onAdd: () =>
|
14
|
+
@div = document.createElement("div")
|
15
|
+
@div.innerHTML = this.content
|
16
|
+
|
17
|
+
@div.style.border = "none"
|
18
|
+
@div.style.borderWidth = "0px"
|
19
|
+
@div.style.position = "absolute"
|
20
|
+
|
21
|
+
@getPanes().overlayMouseTarget.appendChild(@div)
|
22
|
+
|
23
|
+
draw: () =>
|
24
|
+
if !@in_zoom
|
25
|
+
overlayProjection = @getProjection()
|
26
|
+
div_pixel = overlayProjection.fromLatLngToDivPixel(@point)
|
27
|
+
|
28
|
+
left = div_pixel.x - (@width / 2)
|
29
|
+
@div.style.left = left + 'px'
|
30
|
+
top = div_pixel.y - (@height)
|
31
|
+
@div.style.top = top + 'px'
|
32
|
+
@show()
|
33
|
+
|
34
|
+
change_point: (point) ->
|
35
|
+
@point = point
|
36
|
+
@draw()
|
37
|
+
|
38
|
+
onRemove: () =>
|
39
|
+
@div.parentNode.removeChild(@div)
|
40
|
+
@div = null
|
41
|
+
google.maps.event.removeListener(@zoom_changed_event)
|
42
|
+
google.maps.event.removeListener(@idle_event)
|
43
|
+
|
44
|
+
get_content: () ->
|
45
|
+
return @div
|
46
|
+
|
47
|
+
get_content_parent: () ->
|
48
|
+
return $(@div).parent()
|
49
|
+
|
50
|
+
hide: () ->
|
51
|
+
$(@div).hide();
|
52
|
+
|
53
|
+
show: () ->
|
54
|
+
$(@div).show();
|
55
|
+
|
56
|
+
bindMapEvents: () ->
|
57
|
+
set_in_zoom = @set_in_zoom
|
58
|
+
draw = @draw
|
59
|
+
hide = @hide
|
60
|
+
@idle_event = google.maps.event.addListener @map, 'tilesloaded', ->
|
61
|
+
set_in_zoom(false)
|
62
|
+
draw()
|
63
|
+
|
64
|
+
@zoom_changed_event = google.maps.event.addListener @map, 'zoom_changed', ->
|
65
|
+
set_in_zoom(true)
|
66
|
+
hide()
|
67
|
+
|
68
|
+
set_in_zoom: (val) ->
|
69
|
+
@in_zoom = val
|
70
|
+
|
71
|
+
is_in_zoom: () ->
|
72
|
+
return @in_zoom
|