socmap_adf 0.0.1
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.
- 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,32 @@
|
|
|
1
|
+
class ADF.OverlayPush.Views.New extends ADF.GMap.Views.OverlayView
|
|
2
|
+
|
|
3
|
+
hidden: false
|
|
4
|
+
draggable: true
|
|
5
|
+
clickEvent: null
|
|
6
|
+
|
|
7
|
+
constructor: (options) ->
|
|
8
|
+
super(options)
|
|
9
|
+
@clickableArea = if options.area then options.area else @map.getGMap()
|
|
10
|
+
@initOverlay()
|
|
11
|
+
|
|
12
|
+
initOverlay: () ->
|
|
13
|
+
if not @overlay
|
|
14
|
+
if @point && @point.lat() > 0 && @point.lng() > 0
|
|
15
|
+
@pushOverlay()
|
|
16
|
+
else
|
|
17
|
+
@bindMap()
|
|
18
|
+
else
|
|
19
|
+
@overlay.view = @
|
|
20
|
+
@redraw()
|
|
21
|
+
|
|
22
|
+
bindMap: () ->
|
|
23
|
+
@clickEvent = google.maps.event.addListener @clickableArea, 'click', @onClicked unless @clickEvent?
|
|
24
|
+
|
|
25
|
+
unbindMap: () ->
|
|
26
|
+
google.maps.event.removeListener(@clickEvent) if @clickEvent?
|
|
27
|
+
@clickEvent = null
|
|
28
|
+
|
|
29
|
+
onClicked: (e) =>
|
|
30
|
+
@point = e.latLng
|
|
31
|
+
@unbindMap()
|
|
32
|
+
@pushOverlay()
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
class ADF.Popup.Views.Base extends ADF.MVC.Views.Base
|
|
2
|
+
|
|
3
|
+
popupContainer: JST['socmap_adf/modules/popup/templates/basic']
|
|
4
|
+
popupContentClass: ".mapfield_padding"
|
|
5
|
+
popupClass: "popup_wrap"
|
|
6
|
+
popupBacgroundClass: "popup_background"
|
|
7
|
+
hasBacground: true
|
|
8
|
+
closable: true
|
|
9
|
+
horizontalAlign: "center"
|
|
10
|
+
verticalAlign: "center"
|
|
11
|
+
horizontalOffset: 0
|
|
12
|
+
verticalOffset: 0
|
|
13
|
+
category: "other"
|
|
14
|
+
autoHeight: false
|
|
15
|
+
|
|
16
|
+
render: () ->
|
|
17
|
+
newElement = @make("div", {"class": @popupClass})
|
|
18
|
+
@.setElement(newElement)
|
|
19
|
+
$(@el).html(@popupContainer)
|
|
20
|
+
if @model
|
|
21
|
+
@$(@popupContentClass).html(@template(@model.toJSON()))
|
|
22
|
+
else
|
|
23
|
+
@$(@popupContentClass).html(@template)
|
|
24
|
+
@bindCloseButton()
|
|
25
|
+
|
|
26
|
+
$("body").append(@make("div", {"id": "popups"})) if !$("#popups").length
|
|
27
|
+
|
|
28
|
+
if @category
|
|
29
|
+
if !$("#popups").find("#" + @category + "_popups").length
|
|
30
|
+
$("#popups").append(@make("div", {"id": @category + "_popups"}))
|
|
31
|
+
$("#" + @category + "_popups").append(@el)
|
|
32
|
+
else
|
|
33
|
+
$("#popups").append(@el)
|
|
34
|
+
|
|
35
|
+
@addBacground() if @hasBacground
|
|
36
|
+
@center()
|
|
37
|
+
$(window).bind "resize", @center
|
|
38
|
+
@onBind()
|
|
39
|
+
@onRenderCompleted()
|
|
40
|
+
return @
|
|
41
|
+
|
|
42
|
+
addBacground: () ->
|
|
43
|
+
if !@bacground
|
|
44
|
+
@bacground = @make("div", {"class": @popupBacgroundClass})
|
|
45
|
+
$("#popups").append(@bacground)
|
|
46
|
+
$("." + @popupBacgroundClass).bind "click", @closeButtonClicked if @closable
|
|
47
|
+
|
|
48
|
+
bindCloseButton: () ->
|
|
49
|
+
if @closable
|
|
50
|
+
@$(".btn_close").bind "click", @closeButtonClicked
|
|
51
|
+
else
|
|
52
|
+
@$(".btn_close").remove()
|
|
53
|
+
|
|
54
|
+
closeButtonClicked: (e) =>
|
|
55
|
+
e.preventDefault()
|
|
56
|
+
@destroy()
|
|
57
|
+
|
|
58
|
+
center: () =>
|
|
59
|
+
windowHeight = $(window).height()
|
|
60
|
+
windowWidth = $(window).width()
|
|
61
|
+
elHeight = $(@el).height()
|
|
62
|
+
elWidth = $(@el).width()
|
|
63
|
+
|
|
64
|
+
if @verticalAlign == "top"
|
|
65
|
+
top = 10 + @verticalOffset
|
|
66
|
+
else if @verticalAlign == "bottom"
|
|
67
|
+
top = windowHeight - 10 - elHeight - @verticalOffset
|
|
68
|
+
else
|
|
69
|
+
offsetTop = ((elHeight + @verticalOffset) / 2)
|
|
70
|
+
top = windowHeight / 2
|
|
71
|
+
top = top - offsetTop
|
|
72
|
+
|
|
73
|
+
if @horizontalAlign == "left"
|
|
74
|
+
left = 10 + @horizontalOffset
|
|
75
|
+
else if @horizontalAlign == "right"
|
|
76
|
+
left = windowWidth - elWidth - 10 - @horizontalOffset
|
|
77
|
+
else
|
|
78
|
+
left = (windowWidth + @horizontalOffset) / 2
|
|
79
|
+
offsetLeft = (elWidth / 2)
|
|
80
|
+
left = left - offsetLeft
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
$(@el).css({height: ($(window).height() - top) + "px" }) if @autoHeight
|
|
84
|
+
$(@el).css({top: top, left: left})
|
|
85
|
+
|
|
86
|
+
open: () ->
|
|
87
|
+
$(@el).show()
|
|
88
|
+
|
|
89
|
+
close: () ->
|
|
90
|
+
$(@el).hide()
|
|
91
|
+
$("." + @popupBacgroundClass).hide() if @hasBacground
|
|
92
|
+
|
|
93
|
+
destroy: () ->
|
|
94
|
+
$(@el).remove()
|
|
95
|
+
$(@bacground).remove() if @hasBacground
|
|
96
|
+
|
|
97
|
+
onBind: () ->
|
|
98
|
+
onRenderCompleted: () ->
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
class ADF.Popup.Views.Basic extends ADF.MVC.Views.Base
|
|
2
|
+
|
|
3
|
+
# Assign view options
|
|
4
|
+
class : "popup_wrap"
|
|
5
|
+
backgroundClass : "popup_background"
|
|
6
|
+
category : "other"
|
|
7
|
+
isClosable : true
|
|
8
|
+
hasBackground : true
|
|
9
|
+
insidePosition : "center"
|
|
10
|
+
horizontalAlign : "center"
|
|
11
|
+
verticalAlign : "top"
|
|
12
|
+
horizontalOffset: 0
|
|
13
|
+
verticalOffset : 70
|
|
14
|
+
widthOffset: 0
|
|
15
|
+
|
|
16
|
+
# Render view
|
|
17
|
+
render: () ->
|
|
18
|
+
if @model
|
|
19
|
+
$(@el).hide().html( @template( @model.toJSON() ) ).addClass( @class ).fadeIn(300)
|
|
20
|
+
else
|
|
21
|
+
$(@el).hide().html( @template() ).addClass( @class ).fadeIn(300)
|
|
22
|
+
|
|
23
|
+
if @insidePosition == "center"
|
|
24
|
+
$(@el).addClass( "center" )
|
|
25
|
+
|
|
26
|
+
$("body").append( @make( "div", {"id": "popups"} ) ) if !$("#popups").length
|
|
27
|
+
|
|
28
|
+
if @category
|
|
29
|
+
if !$("#popups").find( "#" + @category + "_popups" ).length
|
|
30
|
+
$("#popups").append( @make( "div", { "id": @category + "_popups" } ) )
|
|
31
|
+
|
|
32
|
+
$("#" + @category + "_popups").append( @el )
|
|
33
|
+
else
|
|
34
|
+
$("#popups").append( @el )
|
|
35
|
+
|
|
36
|
+
if !$("#popups ." + @backgroundClass).length
|
|
37
|
+
@backgroundElement = @make( "div", { "class": @backgroundClass } )
|
|
38
|
+
$("#popups").append( @backgroundElement )
|
|
39
|
+
|
|
40
|
+
@showBackground() if @hasBackground == true
|
|
41
|
+
@renderPosition()
|
|
42
|
+
$(window).bind( "resize", @renderPosition )
|
|
43
|
+
|
|
44
|
+
return @
|
|
45
|
+
|
|
46
|
+
# Render methods
|
|
47
|
+
showBackground: () ->
|
|
48
|
+
$("." + @backgroundClass).fadeIn(500)
|
|
49
|
+
$("." + @backgroundClass).bind( "click", @closeClicked ) if @isClosable == true
|
|
50
|
+
|
|
51
|
+
renderPosition: () =>
|
|
52
|
+
windowHeight = $(window).height()
|
|
53
|
+
windowWidth = $(window).width()
|
|
54
|
+
elHeight = $(@el).height()
|
|
55
|
+
elWidth = $(@el).width() + @widthOffset
|
|
56
|
+
|
|
57
|
+
if @verticalAlign == "top"
|
|
58
|
+
top = @verticalOffset
|
|
59
|
+
else if @verticalAlign == "bottom"
|
|
60
|
+
top = windowHeight - elHeight - @verticalOffset
|
|
61
|
+
else
|
|
62
|
+
offsetTop = ((elHeight + @verticalOffset) / 2)
|
|
63
|
+
top = windowHeight / 2
|
|
64
|
+
top = top - offsetTop
|
|
65
|
+
|
|
66
|
+
if @horizontalAlign == "left"
|
|
67
|
+
left = @horizontalOffset
|
|
68
|
+
else if @horizontalAlign == "right"
|
|
69
|
+
left = windowWidth - elWidth - @horizontalOffset
|
|
70
|
+
else
|
|
71
|
+
left = (windowWidth + @horizontalOffset) / 2
|
|
72
|
+
offsetLeft = (elWidth / 2)
|
|
73
|
+
left = left - offsetLeft
|
|
74
|
+
|
|
75
|
+
$(@el).css({top: top, left: left})
|
|
76
|
+
|
|
77
|
+
# View event methods
|
|
78
|
+
onRenderCompleted: () ->
|
|
79
|
+
|
|
80
|
+
closeClicked: ( event ) =>
|
|
81
|
+
event.preventDefault()
|
|
82
|
+
@destroy()
|
|
83
|
+
|
|
84
|
+
destroy: () ->
|
|
85
|
+
$(@el).fadeOut( 200, -> $(@).remove() )
|
|
86
|
+
$(@backgroundElement).fadeOut(400) if @hasBackground == true
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<a href="#" class="message"></a>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
class ADF.Sidebar.Views.Bottomlink extends ADF.MVC.Views.Base
|
|
2
|
+
|
|
3
|
+
template: JST["socmap_adf/modules/sidebar/templates/bottomlink"]
|
|
4
|
+
templateaction : JST["socmap_adf/modules/sidebar/templates/bottomlinkaction"]
|
|
5
|
+
|
|
6
|
+
title: ""
|
|
7
|
+
aclass: ""
|
|
8
|
+
withaction: false
|
|
9
|
+
actiontitle: ""
|
|
10
|
+
height: 30
|
|
11
|
+
events :
|
|
12
|
+
"click a" : "click"
|
|
13
|
+
|
|
14
|
+
initialize: ->
|
|
15
|
+
_.bindAll(this, 'render')
|
|
16
|
+
@eventBus = @options.eventBus
|
|
17
|
+
|
|
18
|
+
render: ->
|
|
19
|
+
el = @make("li")
|
|
20
|
+
@setElement(el)
|
|
21
|
+
if @withaction then @renderWithAction() else @renderWithoutAction()
|
|
22
|
+
@onRenderComplete()
|
|
23
|
+
return @
|
|
24
|
+
|
|
25
|
+
renderWithAction: () ->
|
|
26
|
+
$(@el).html(@templateaction)
|
|
27
|
+
@$("span").attr("class", @aclass)
|
|
28
|
+
|
|
29
|
+
renderWithoutAction: () ->
|
|
30
|
+
$(@el).html(@template)
|
|
31
|
+
@$("a").html(@title)
|
|
32
|
+
@$("a").attr("class", @aclass)
|
|
33
|
+
|
|
34
|
+
click: (e) ->
|
|
35
|
+
e.preventDefault()
|
|
36
|
+
@onClicked(e)
|
|
37
|
+
|
|
38
|
+
# CALLBACKS
|
|
39
|
+
onClicked: (e) ->
|
|
40
|
+
onRenderComplete:() ->
|
|
41
|
+
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
class ADF.Sidebar.Views.Content extends ADF.MVC.Views.Base
|
|
2
|
+
|
|
3
|
+
top: 39
|
|
4
|
+
bottomlinkheight: 32
|
|
5
|
+
contentTemplate: JST["socmap_adf/modules/sidebar/templates/content"]
|
|
6
|
+
|
|
7
|
+
constructor: ( options ) ->
|
|
8
|
+
super(options)
|
|
9
|
+
@doNanoScroll = if options.doNanoScroll? then options.doNanoScroll else true
|
|
10
|
+
@model = @options.model
|
|
11
|
+
@rendered = false
|
|
12
|
+
|
|
13
|
+
render: ->
|
|
14
|
+
$(@el).html(@contentTemplate)
|
|
15
|
+
template = if @model then @template( @model.toJSON() ) else @template()
|
|
16
|
+
@$(".level_content_wrap").html(template)
|
|
17
|
+
@renderBottomLinks()
|
|
18
|
+
@bindResize()
|
|
19
|
+
@onRenderComplete()
|
|
20
|
+
@calculateResize()
|
|
21
|
+
@initNanoScroller() if @doNanoScroll
|
|
22
|
+
@rendered = true
|
|
23
|
+
return @
|
|
24
|
+
|
|
25
|
+
bindResize: ->
|
|
26
|
+
$(window).bind "resize", @calculateResize
|
|
27
|
+
|
|
28
|
+
calculateResize: () =>
|
|
29
|
+
height = $(window).height() - @top - @bottomlinkheight * @countBottomLinks()
|
|
30
|
+
@$(".level_content_wrap").css({ "height" : height + "px"})
|
|
31
|
+
|
|
32
|
+
initNanoScroller: () ->
|
|
33
|
+
setTimeout(
|
|
34
|
+
=> @$(".level_content_wrap").nanoScroller({autoresize: true}),
|
|
35
|
+
300
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
setBottomLinks: (bottomlinks) =>
|
|
39
|
+
@bottomlinks = bottomlinks
|
|
40
|
+
@renderBottomLinks()
|
|
41
|
+
@onBottomLinksSat()
|
|
42
|
+
|
|
43
|
+
addBottomLink: ( bootomlink ) =>
|
|
44
|
+
@bottomlinks = [] if not @bottomlinks
|
|
45
|
+
@bottomlinks.push( bootomlink )
|
|
46
|
+
|
|
47
|
+
countBottomLinks: ->
|
|
48
|
+
if @bottomlinks? then @bottomlinks.length else 0
|
|
49
|
+
|
|
50
|
+
renderBottomLinks: ->
|
|
51
|
+
@$(".panel_buttons").html("")
|
|
52
|
+
return false if not @bottomlinks
|
|
53
|
+
@$(".panel_buttons").append(bottomLink.render().el) for bottomLink in @bottomlinks
|
|
54
|
+
|
|
55
|
+
addLoading: ->
|
|
56
|
+
$(@el).prepend('<div class="sidebar_loading"><div class="loader"><img src="/assets/load.gif" alt="" width="31" height="31" /></div><div class="overlay"></div></div>')
|
|
57
|
+
|
|
58
|
+
removeLoading: ->
|
|
59
|
+
$(@el).find('.sidebar_loading').remove()
|
|
60
|
+
|
|
61
|
+
# CALLBACKS
|
|
62
|
+
onRenderComplete: ->
|
|
63
|
+
onBottomLinksSat: ->
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
class ADF.Sidebar.Views.Sidebar extends ADF.MVC.Views.Base
|
|
2
|
+
|
|
3
|
+
top: 0
|
|
4
|
+
tabs: false
|
|
5
|
+
hidden: false
|
|
6
|
+
thirdLevelTop: 40
|
|
7
|
+
top: 39
|
|
8
|
+
smallSpeed: 400
|
|
9
|
+
bigSpeed: 500
|
|
10
|
+
firstPanelClass: "panel_4"
|
|
11
|
+
|
|
12
|
+
template: JST["socmap_adf/modules/sidebar/templates/sidebar"]
|
|
13
|
+
|
|
14
|
+
initialize: () ->
|
|
15
|
+
_.bindAll(this, 'render', 'hideSecondLevel', 'hideThirdLevel', 'animateFirstEnterance')
|
|
16
|
+
@eventBus = @options.eventBus
|
|
17
|
+
@eventBus.bind("hideSecondLevel", @hideSecondLevel)
|
|
18
|
+
@eventBus.bind("hideThirdLevel", @hideThirdLevel)
|
|
19
|
+
@firstPanelClass = @options.firstPanelClass if @options.firstPanelClass
|
|
20
|
+
|
|
21
|
+
render: ->
|
|
22
|
+
$(@el).html(@template)
|
|
23
|
+
@first_level = $(@el).find("#first_level")
|
|
24
|
+
@second_level = $(@el).find("#second_level")
|
|
25
|
+
@third_level = $(@el).find("#third_level")
|
|
26
|
+
@delegateEvents()
|
|
27
|
+
@bindResizeEvents()
|
|
28
|
+
@onSidebarRendered()
|
|
29
|
+
return @
|
|
30
|
+
|
|
31
|
+
bindResizeEvents: ->
|
|
32
|
+
$(window).resize =>
|
|
33
|
+
@resize()
|
|
34
|
+
|
|
35
|
+
$(document).ready =>
|
|
36
|
+
@resize()
|
|
37
|
+
|
|
38
|
+
resize: ->
|
|
39
|
+
height = $(window).height() - @top
|
|
40
|
+
@first_level.css({ "top" : 0 + "px", "height" : height + "px"})
|
|
41
|
+
@second_level.css({ "top" : 0 + "px", "height" : height + "px"})
|
|
42
|
+
@third_level.css({ "top" : @thirdLevelTop + "px", "height" : (height - @thirdLevelTop) + "px"})
|
|
43
|
+
|
|
44
|
+
showFirstLevel: (view) ->
|
|
45
|
+
newElement = @make("div", {"class": @firstPanelClass })
|
|
46
|
+
view.setElement(newElement)
|
|
47
|
+
@first_level.html(view.render().el)
|
|
48
|
+
@onFirstLevelShowed()
|
|
49
|
+
|
|
50
|
+
# SECOND LEVEL
|
|
51
|
+
initSecondLevel: (view) ->
|
|
52
|
+
@secondView = view
|
|
53
|
+
return if @secondView.rendered
|
|
54
|
+
|
|
55
|
+
newElement = @make("div", {"class": "panel_2"})
|
|
56
|
+
@secondView.setElement(newElement)
|
|
57
|
+
@setContent()
|
|
58
|
+
@animateFirstEnterance()
|
|
59
|
+
|
|
60
|
+
setContent: () ->
|
|
61
|
+
@second_level.html( @secondView.render().el )
|
|
62
|
+
|
|
63
|
+
animateFirstEnterance: () ->
|
|
64
|
+
@showOverlayOverFirstColumn()
|
|
65
|
+
@second_level.show()
|
|
66
|
+
@second_level.animate({left: '370px'}, @bigSpeed, @onSecondLevelEntered )
|
|
67
|
+
|
|
68
|
+
onSecondLevelEntered: =>
|
|
69
|
+
@showOverlayOverFirstColumn()
|
|
70
|
+
@darkenOverlayOverFirstColumn()
|
|
71
|
+
@placeSecondLevel()
|
|
72
|
+
|
|
73
|
+
placeSecondLevel: () ->
|
|
74
|
+
@second_level.css({"z-index" : 9})
|
|
75
|
+
@second_level.animate({left: '120px'}, @smallSpeed, @onSecondLevelPlaced )
|
|
76
|
+
|
|
77
|
+
onSecondLevelPlaced: () =>
|
|
78
|
+
|
|
79
|
+
closeSecondLevel: () ->
|
|
80
|
+
@hideThirdLevel()
|
|
81
|
+
@moveOutSecondLevel()
|
|
82
|
+
@lightenOverlayOverFirstColumn()
|
|
83
|
+
|
|
84
|
+
moveOutSecondLevel: () ->
|
|
85
|
+
@second_level.animate({left: '370px', "z-index" : 3}, @smallSpeed, @onMovedOutSecondLevel )
|
|
86
|
+
|
|
87
|
+
onMovedOutSecondLevel: () =>
|
|
88
|
+
@second_level.animate({left: '59px'}, @smallSpeed, @onSecondLevelClosed )
|
|
89
|
+
|
|
90
|
+
onSecondLevelClosed: () =>
|
|
91
|
+
@second_level.hide()
|
|
92
|
+
@hideOverlayOverFirstColumn()
|
|
93
|
+
|
|
94
|
+
#Fade on first level
|
|
95
|
+
showOverlayOverFirstColumn: ->
|
|
96
|
+
unless @first_level.find(".first_level_overlay").is(":visible")
|
|
97
|
+
@first_level.append("<div class='first_level_overlay'></div>")
|
|
98
|
+
|
|
99
|
+
darkenOverlayOverFirstColumn: ->
|
|
100
|
+
@$(".first_level_overlay").animate({"opacity":0.5}, @smallSpeed, @onOverlayOverFirstColumnDarkened)
|
|
101
|
+
|
|
102
|
+
onOverlayOverFirstColumnDarkened: =>
|
|
103
|
+
@$(".first_level_overlay").click (e) =>
|
|
104
|
+
@$(".first_level_overlay").unbind()
|
|
105
|
+
@closeSecondLevel()
|
|
106
|
+
|
|
107
|
+
lightenOverlayOverFirstColumn: ->
|
|
108
|
+
@$(".first_level_overlay").animate({"opacity":0}, @smallSpeed, @onOverlayOverFirstColumnLightened)
|
|
109
|
+
|
|
110
|
+
onOverlayOverFirstColumnLightened: () ->
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
hideOverlayOverFirstColumn: ->
|
|
114
|
+
@$("#first_level").find(".first_level_overlay").remove()
|
|
115
|
+
|
|
116
|
+
# THIRD LEVEL
|
|
117
|
+
initThirdLevel: (view) ->
|
|
118
|
+
el = @make("div", {"class": "panel_3"})
|
|
119
|
+
view.setElement(el)
|
|
120
|
+
if not @third_level.is(":visible")
|
|
121
|
+
@animateFirstEnteranceThirdLevel(view)
|
|
122
|
+
else
|
|
123
|
+
@setContentThirdLevel(view)
|
|
124
|
+
|
|
125
|
+
setContentThirdLevel: (view) ->
|
|
126
|
+
@third_level.html(view.render().el)
|
|
127
|
+
@addCloseButton()
|
|
128
|
+
|
|
129
|
+
animateFirstEnteranceThirdLevel: (view) ->
|
|
130
|
+
@setContentThirdLevel(view)
|
|
131
|
+
@third_level.show()
|
|
132
|
+
@third_level.css({left: '120px'})
|
|
133
|
+
@third_level.animate({left: '430px'}, @bigSpeed, @onThirdLevelShowed )
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
hideThirdLevel: () =>
|
|
137
|
+
if @third_level.is(":visible")
|
|
138
|
+
@third_level.animate({left: '120px'}, @smallSpeed, @closeThirdLevel)
|
|
139
|
+
|
|
140
|
+
closeThirdLevel: () =>
|
|
141
|
+
@third_level.hide()
|
|
142
|
+
@third_level.html("")
|
|
143
|
+
@onThirdLevelClosed()
|
|
144
|
+
|
|
145
|
+
renderInnerView: ->
|
|
146
|
+
@$("#slices_content").html(@view.render().el)
|
|
147
|
+
|
|
148
|
+
addCloseButton: ->
|
|
149
|
+
btn_close = @make("a", {"class": "btn_close", "style" : "z-index:7"})
|
|
150
|
+
@third_level.find(".panel_3").prepend(btn_close)
|
|
151
|
+
$(btn_close).click (e) =>
|
|
152
|
+
e.preventDefault()
|
|
153
|
+
@hideThirdLevel()
|
|
154
|
+
|
|
155
|
+
renderMenu: ->
|
|
156
|
+
|
|
157
|
+
hideSecondLevel: ->
|
|
158
|
+
# CALLBACKS
|
|
159
|
+
onSidebarRendered: ->
|
|
160
|
+
onFirstLevelShowed: ->
|
|
161
|
+
onThirdLevelShowed: () =>
|
|
162
|
+
onThirdLevelHidden: ->
|
|
163
|
+
onThirdLevelClosed: ->
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
class ADF.Sidebar.Views.Tab extends ADF.MVC.Views.Base
|
|
2
|
+
|
|
3
|
+
template: JST['socmap_adf/modules/sidebar/templates/tab']
|
|
4
|
+
|
|
5
|
+
title: ""
|
|
6
|
+
url: ""
|
|
7
|
+
selected: false
|
|
8
|
+
tabsObject : null
|
|
9
|
+
content: null
|
|
10
|
+
events :
|
|
11
|
+
"click a.tablink" : "click"
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
initialize: ->
|
|
15
|
+
_.bindAll(this, 'render')
|
|
16
|
+
@eventBus = @options.eventBus
|
|
17
|
+
|
|
18
|
+
render: ->
|
|
19
|
+
$(@el).html(@template)
|
|
20
|
+
@$("a.tablink").html(@title)
|
|
21
|
+
@$("a.tablink").attr("href", @url)
|
|
22
|
+
@onRenderTabComplete()
|
|
23
|
+
return @
|
|
24
|
+
|
|
25
|
+
select: ->
|
|
26
|
+
@$("a.tablink").addClass("active")
|
|
27
|
+
@tabsObject.renderContent(@)
|
|
28
|
+
@tabsObject.setBottomLinks( @bottomlinks )
|
|
29
|
+
@onSelectComplete()
|
|
30
|
+
|
|
31
|
+
deselect: ->
|
|
32
|
+
@$("a.tablink").removeClass("active")
|
|
33
|
+
|
|
34
|
+
click: (e) ->
|
|
35
|
+
e.preventDefault()
|
|
36
|
+
window.mainRouter.navigate(@url(), {trigger: false});
|
|
37
|
+
@tabsObject.selectTab(@)
|
|
38
|
+
|
|
39
|
+
setTabsObject: (obj) ->
|
|
40
|
+
@tabsObject = obj
|
|
41
|
+
|
|
42
|
+
addTabBottomLink: ( bootomlink ) =>
|
|
43
|
+
@bottomlinks = [] if not @bottomlinks
|
|
44
|
+
@bottomlinks.push( bootomlink )
|
|
45
|
+
|
|
46
|
+
initBottomLinks: () ->
|
|
47
|
+
|
|
48
|
+
# Callbacks
|
|
49
|
+
onRenderComplete: ->
|
|
50
|
+
onRenderTabComplete: ->
|
|
51
|
+
onSelectComplete: ->
|
|
52
|
+
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
class ADF.Sidebar.Views.Tabcontent extends ADF.MVC.Views.Base
|
|
2
|
+
|
|
3
|
+
initialize: ->
|
|
4
|
+
|
|
5
|
+
render: ->
|
|
6
|
+
el = @make("div", {"class": "content"})
|
|
7
|
+
@setElement(el)
|
|
8
|
+
$(@el).html(@template)
|
|
9
|
+
@onRenderComplete()
|
|
10
|
+
@
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
onRenderComplete: ->
|
|
14
|
+
|
|
15
|
+
showLoading: ( waitLoading ) ->
|
|
16
|
+
@waitLoading = waitLoading
|
|
17
|
+
@loading = @make("img", {"src":"/assets/small_loading_gray.gif", "class":"tab_loading"})
|
|
18
|
+
@$el.prepend(@loading)
|
|
19
|
+
|
|
20
|
+
hideLoading: ()->
|
|
21
|
+
@waitLoading = @waitLoading - 1
|
|
22
|
+
$(@loading).remove() if @waitLoading <= 0
|
|
23
|
+
|