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.
Files changed (128) hide show
  1. data/.gitignore +10 -0
  2. data/.rvmrc +81 -0
  3. data/CHANGELOG.md +5 -0
  4. data/Gemfile +17 -0
  5. data/MIT-LICENSE +20 -0
  6. data/README.md +3 -0
  7. data/Rakefile +36 -0
  8. data/lib/assets/.gitkeep +0 -0
  9. data/lib/assets/javascripts/.DS_Store +0 -0
  10. data/lib/assets/javascripts/socmap_adf/.DS_Store +0 -0
  11. data/lib/assets/javascripts/socmap_adf/init.js.coffee.erb +9 -0
  12. data/lib/assets/javascripts/socmap_adf/lib/adf_delegate.js.coffee +13 -0
  13. data/lib/assets/javascripts/socmap_adf/lib/adf_view.js.coffee +7 -0
  14. data/lib/assets/javascripts/socmap_adf/modules/.DS_Store +0 -0
  15. data/lib/assets/javascripts/socmap_adf/modules/cluster/init.js.coffee +11 -0
  16. data/lib/assets/javascripts/socmap_adf/modules/cluster/lib/elycharts.js +3769 -0
  17. data/lib/assets/javascripts/socmap_adf/modules/cluster/lib/raphael.js +5815 -0
  18. data/lib/assets/javascripts/socmap_adf/modules/cluster/templates/chart.jst.eco +6 -0
  19. data/lib/assets/javascripts/socmap_adf/modules/cluster/views/chart.js.coffee +107 -0
  20. data/lib/assets/javascripts/socmap_adf/modules/cluster/views/chart_icon.js.coffee +106 -0
  21. data/lib/assets/javascripts/socmap_adf/modules/cluster/views/cluster.js.coffee +127 -0
  22. data/lib/assets/javascripts/socmap_adf/modules/cluster/views/default_icon.js.coffee +170 -0
  23. data/lib/assets/javascripts/socmap_adf/modules/cluster/views/main.js.coffee +10 -0
  24. data/lib/assets/javascripts/socmap_adf/modules/cluster/views/marker_clusterer.js.coffee +358 -0
  25. data/lib/assets/javascripts/socmap_adf/modules/file_uploader/init.js.coffee +7 -0
  26. data/lib/assets/javascripts/socmap_adf/modules/file_uploader/templates/existing_file.jst.eco +10 -0
  27. data/lib/assets/javascripts/socmap_adf/modules/file_uploader/templates/file.jst.eco +3 -0
  28. data/lib/assets/javascripts/socmap_adf/modules/file_uploader/templates/main.jst.eco +7 -0
  29. data/lib/assets/javascripts/socmap_adf/modules/file_uploader/templates/uploading.jst.eco +3 -0
  30. data/lib/assets/javascripts/socmap_adf/modules/file_uploader/views/main.js.coffee +76 -0
  31. data/lib/assets/javascripts/socmap_adf/modules/form/init.js.coffee +9 -0
  32. data/lib/assets/javascripts/socmap_adf/modules/form/models/base.js.coffee +73 -0
  33. data/lib/assets/javascripts/socmap_adf/modules/form/models/error.js.coffee +12 -0
  34. data/lib/assets/javascripts/socmap_adf/modules/form/models/field_binder.js.coffee +104 -0
  35. data/lib/assets/javascripts/socmap_adf/modules/form/models/validator.js.coffee +65 -0
  36. data/lib/assets/javascripts/socmap_adf/modules/form/templates/error_field.jst.eco +7 -0
  37. data/lib/assets/javascripts/socmap_adf/modules/form/templates/field_set.jst.eco +6 -0
  38. data/lib/assets/javascripts/socmap_adf/modules/form/templates/field_set_button.jst.eco +1 -0
  39. data/lib/assets/javascripts/socmap_adf/modules/form/templates/field_sets.jst.eco +2 -0
  40. data/lib/assets/javascripts/socmap_adf/modules/form/views/base.js.coffee +9 -0
  41. data/lib/assets/javascripts/socmap_adf/modules/form/views/field_set.js.coffee +88 -0
  42. data/lib/assets/javascripts/socmap_adf/modules/form/views/field_set_with_button.js.coffee +38 -0
  43. data/lib/assets/javascripts/socmap_adf/modules/form/views/field_sets.js.coffee +81 -0
  44. data/lib/assets/javascripts/socmap_adf/modules/gmap/.DS_Store +0 -0
  45. data/lib/assets/javascripts/socmap_adf/modules/gmap/init.js.coffee +6 -0
  46. data/lib/assets/javascripts/socmap_adf/modules/gmap/views/.DS_Store +0 -0
  47. data/lib/assets/javascripts/socmap_adf/modules/gmap/views/custom_marker.js.coffee +36 -0
  48. data/lib/assets/javascripts/socmap_adf/modules/gmap/views/marker.js.coffee +72 -0
  49. data/lib/assets/javascripts/socmap_adf/modules/gmap/views/marker_with_label.js +566 -0
  50. data/lib/assets/javascripts/socmap_adf/modules/gmap/views/overlay.js.coffee +237 -0
  51. data/lib/assets/javascripts/socmap_adf/modules/gmap/views/overlay_view.js.coffee +143 -0
  52. data/lib/assets/javascripts/socmap_adf/modules/gmap/views/polygon.js.coffee +107 -0
  53. data/lib/assets/javascripts/socmap_adf/modules/image_uploader/init.js.coffee +7 -0
  54. data/lib/assets/javascripts/socmap_adf/modules/image_uploader/templates/main.jst.eco +10 -0
  55. data/lib/assets/javascripts/socmap_adf/modules/image_uploader/views/main.js.coffee +69 -0
  56. data/lib/assets/javascripts/socmap_adf/modules/map/.DS_Store +0 -0
  57. data/lib/assets/javascripts/socmap_adf/modules/map/init.js.coffee +9 -0
  58. data/lib/assets/javascripts/socmap_adf/modules/map/models/custom_map.js.coffee +1 -0
  59. data/lib/assets/javascripts/socmap_adf/modules/map/models/map.js.coffee +63 -0
  60. data/lib/assets/javascripts/socmap_adf/modules/map/templates/main.jst.eco +1 -0
  61. data/lib/assets/javascripts/socmap_adf/modules/map/templates/moving_pin.jst.eco +11 -0
  62. data/lib/assets/javascripts/socmap_adf/modules/map/templates/tooltip.jst.eco +1 -0
  63. data/lib/assets/javascripts/socmap_adf/modules/map/views/google_marker_clusterer.js.coffee +11 -0
  64. data/lib/assets/javascripts/socmap_adf/modules/map/views/main.js.coffee +79 -0
  65. data/lib/assets/javascripts/socmap_adf/modules/map/views/moving_pin.js.coffee +47 -0
  66. data/lib/assets/javascripts/socmap_adf/modules/map/views/tooltip.js.coffee +46 -0
  67. data/lib/assets/javascripts/socmap_adf/modules/marker/init.js.coffee +6 -0
  68. data/lib/assets/javascripts/socmap_adf/modules/marker/views/.DS_Store +0 -0
  69. data/lib/assets/javascripts/socmap_adf/modules/marker/views/main.js.coffee +132 -0
  70. data/lib/assets/javascripts/socmap_adf/modules/minimap/init.js.coffee +9 -0
  71. data/lib/assets/javascripts/socmap_adf/modules/minimap/models/minimap.js.coffee +36 -0
  72. data/lib/assets/javascripts/socmap_adf/modules/minimap/templates/moving_pin.jst.eco +11 -0
  73. data/lib/assets/javascripts/socmap_adf/modules/minimap/templates/tooltip.jst.eco +1 -0
  74. data/lib/assets/javascripts/socmap_adf/modules/minimap/views/main.js.coffee +68 -0
  75. data/lib/assets/javascripts/socmap_adf/modules/minimap/views/moving_pin.js.coffee +55 -0
  76. data/lib/assets/javascripts/socmap_adf/modules/minimap/views/tooltip.js.coffee +47 -0
  77. data/lib/assets/javascripts/socmap_adf/modules/mvc/init.js.coffee +6 -0
  78. data/lib/assets/javascripts/socmap_adf/modules/mvc/views/base.js.coffee +5 -0
  79. data/lib/assets/javascripts/socmap_adf/modules/overlay/.DS_Store +0 -0
  80. data/lib/assets/javascripts/socmap_adf/modules/overlay/init.js.coffee +10 -0
  81. data/lib/assets/javascripts/socmap_adf/modules/overlay/models/overlay.js.coffee +4 -0
  82. data/lib/assets/javascripts/socmap_adf/modules/overlay/templates/main.jst.eco +1 -0
  83. data/lib/assets/javascripts/socmap_adf/modules/overlay/templates/polygon_label.jst.eco +1 -0
  84. data/lib/assets/javascripts/socmap_adf/modules/overlay/views/.DS_Store +0 -0
  85. data/lib/assets/javascripts/socmap_adf/modules/overlay/views/main.js.coffee +6 -0
  86. data/lib/assets/javascripts/socmap_adf/modules/overlay/views/overlay.js.coffee +55 -0
  87. data/lib/assets/javascripts/socmap_adf/modules/overlay/views/polygon_label.js.coffee +17 -0
  88. data/lib/assets/javascripts/socmap_adf/modules/overlay_push/init.js.coffee +8 -0
  89. data/lib/assets/javascripts/socmap_adf/modules/overlay_push/templates/colibration.jst.eco +4 -0
  90. data/lib/assets/javascripts/socmap_adf/modules/overlay_push/views/new.js.coffee +32 -0
  91. data/lib/assets/javascripts/socmap_adf/modules/popup/init.js.coffee +7 -0
  92. data/lib/assets/javascripts/socmap_adf/modules/popup/templates/base.jst.eco +5 -0
  93. data/lib/assets/javascripts/socmap_adf/modules/popup/templates/basic.jst.eco +5 -0
  94. data/lib/assets/javascripts/socmap_adf/modules/popup/views/base.js.coffee +98 -0
  95. data/lib/assets/javascripts/socmap_adf/modules/popup/views/basic.js.coffee +86 -0
  96. data/lib/assets/javascripts/socmap_adf/modules/sidebar/collections/empty +0 -0
  97. data/lib/assets/javascripts/socmap_adf/modules/sidebar/init.js.coffee +11 -0
  98. data/lib/assets/javascripts/socmap_adf/modules/sidebar/models/slice.js.coffee +0 -0
  99. data/lib/assets/javascripts/socmap_adf/modules/sidebar/templates/bottomlink.jst.eco +1 -0
  100. data/lib/assets/javascripts/socmap_adf/modules/sidebar/templates/bottomlinkaction.jst.eco +2 -0
  101. data/lib/assets/javascripts/socmap_adf/modules/sidebar/templates/content.jst.eco +2 -0
  102. data/lib/assets/javascripts/socmap_adf/modules/sidebar/templates/sidebar.jst.eco +3 -0
  103. data/lib/assets/javascripts/socmap_adf/modules/sidebar/templates/tab.jst.eco +3 -0
  104. data/lib/assets/javascripts/socmap_adf/modules/sidebar/templates/tabs.jst.eco +3 -0
  105. data/lib/assets/javascripts/socmap_adf/modules/sidebar/views/bottomlink.js.coffee +41 -0
  106. data/lib/assets/javascripts/socmap_adf/modules/sidebar/views/content.js.coffee +63 -0
  107. data/lib/assets/javascripts/socmap_adf/modules/sidebar/views/sidebar.js.coffee +163 -0
  108. data/lib/assets/javascripts/socmap_adf/modules/sidebar/views/tab.js.coffee +52 -0
  109. data/lib/assets/javascripts/socmap_adf/modules/sidebar/views/tabcontent.js.coffee +23 -0
  110. data/lib/assets/javascripts/socmap_adf/modules/sidebar/views/tabs.js.coffee +63 -0
  111. data/lib/assets/javascripts/socmap_adf/modules/zone/collections/points.js.coffee +1 -0
  112. data/lib/assets/javascripts/socmap_adf/modules/zone/collections/zones.js.coffee +2 -0
  113. data/lib/assets/javascripts/socmap_adf/modules/zone/init.js.coffee +11 -0
  114. data/lib/assets/javascripts/socmap_adf/modules/zone/models/polygon.js.coffee +72 -0
  115. data/lib/assets/javascripts/socmap_adf/modules/zone/templates/main.jst.eco +0 -0
  116. data/lib/assets/javascripts/socmap_adf/modules/zone/views/main.js.coffee +6 -0
  117. data/lib/assets/javascripts/socmap_adf/modules/zone/views/test.js.coffee +17 -0
  118. data/lib/assets/javascripts/socmap_adf/requiress.js.coffee.erb +3 -0
  119. data/lib/generators/install_generator.rb +15 -0
  120. data/lib/generators/templates/socmap.rb.erb +9 -0
  121. data/lib/socmap_adf/engine.rb +5 -0
  122. data/lib/socmap_adf/version.rb +3 -0
  123. data/lib/socmap_adf.rb +17 -0
  124. data/lib/tasks/socmap-adf_tasks.rake +4 -0
  125. data/socmap_adf.gemspec +26 -0
  126. data/test/socmap-adf_test.rb +7 -0
  127. data/test/test_helper.rb +15 -0
  128. metadata +202 -0
@@ -0,0 +1,4 @@
1
+ <p>Norādi lokāciju šim objektam kartē, pārbīdot to vajadzīgajā vietā.</p>
2
+ <div class="btn_input green">
3
+ <input type="button" name="finish" value="Pabeigt">
4
+ </div>
@@ -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,7 @@
1
+ # Default requires for ADF modules
2
+ #= require_self
3
+ #= require_tree ./templates
4
+ #= require_tree ./views
5
+
6
+ ADF.Popup =
7
+ Views: {}
@@ -0,0 +1,5 @@
1
+ <div class="mapfield_all">
2
+ <a href="#" class="btn_close">X</a>
3
+ <div class="mapfield_padding clear">
4
+ </div>
5
+ </div>
@@ -0,0 +1,5 @@
1
+ <div class="mapfield_all">
2
+ <a href="#" class="btn_close">X</a>
3
+ <div class="mapfield_padding clear">
4
+ </div>
5
+ </div>
@@ -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
@@ -0,0 +1,11 @@
1
+ # Default requires for ADF modules
2
+ #= require_self
3
+ #= require_tree ./templates
4
+ #= require_tree ./models
5
+ #= require_tree ./collections
6
+ #= require_tree ./views
7
+
8
+ ADF.Sidebar =
9
+ Models: {}
10
+ Collections: {}
11
+ Views: {}
@@ -0,0 +1 @@
1
+ <a href="#" class="message"></a>
@@ -0,0 +1,2 @@
1
+ <span class=""><text></text><a href="#" class="action_link"></a>
2
+ <img src="/assets/small_loading_gray.gif" class="loading_for_link"/></span>
@@ -0,0 +1,2 @@
1
+ <div class="level_content_wrap"></div>
2
+ <ul class="panel_buttons"></ul>
@@ -0,0 +1,3 @@
1
+ <div id ="first_level"></div>
2
+ <div id ="second_level" style="display:none;"></div>
3
+ <div id ="third_level" style="display:none;"></div>
@@ -0,0 +1,3 @@
1
+ <li>
2
+ <a class="tablink" href="#"></a>
3
+ </li>
@@ -0,0 +1,3 @@
1
+ <ul id="main_menu" class="menu_main clear"></ul>
2
+ <div id="tabs_content">
3
+ </div>
@@ -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
+