overlay_me 0.12.1 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -35,4 +35,5 @@ class OverlayMe.MenuClass extends OverlayMe.Draggable
35
35
 
36
36
 
37
37
  # create only 1 menu
38
- OverlayMe.menu = new OverlayMe.MenuClass() unless OverlayMe.menu_box
38
+ if OverlayMe.mustLoad() # dont do it anytime
39
+ OverlayMe.menu = new OverlayMe.MenuClass() unless OverlayMe.menu_box
@@ -1,13 +1,26 @@
1
1
  OverlayMe.Mixin.Hideable = {
2
2
 
3
3
  isDisplayed: ->
4
- return $o(@el).css('display') != 'none'
4
+ element = @el || this
5
+ return $o(element).css('display') != 'none'
5
6
 
6
7
  toggleDisplay: (default_display_type='block') ->
7
8
  if @isDisplayed()
8
- $o(@el).css { display: 'none' }
9
+ @hide()
9
10
  else
10
- $o(@el).css { display: default_display_type }
11
- @saveCss()
11
+ @show(default_display_type)
12
12
 
13
+ show: (default_display_type='block') ->
14
+ element = @el || this
15
+ $o(element).css { display: default_display_type }
16
+ @saveState()
17
+
18
+ hide: ->
19
+ element = @el || this
20
+ $o(element).css { display: 'none' }
21
+ @saveState()
22
+
23
+ saveState: ->
24
+ element = @el || this
25
+ @saveCss(element) if @saveCss
13
26
  }
@@ -1,16 +1,20 @@
1
1
  OverlayMe.Mixin.Storable = {
2
2
 
3
3
  loadCss: (element=@el, default_css) ->
4
+ return unless @id
4
5
  if ( cssData = localStorage.getItem(@id) )
5
6
  $o(element).css(JSON.parse(cssData))
7
+ # console.log 'load: ', @id, cssData
6
8
  else
7
9
  $o(element).css(default_css) unless default_css == undefined
8
10
 
9
11
  saveCss: (element=@el) ->
12
+ return unless @id
10
13
  @css_attributes_to_save = ['top', 'left', 'display', 'opacity'] unless @css_attributes_to_save
11
14
  cssData = {}
12
15
  for css_attribute in @css_attributes_to_save
13
16
  cssData[css_attribute] = $o(element).css(css_attribute)
17
+ # console.log 'save: ', @id, JSON.stringify(cssData)
14
18
  localStorage.setItem(@id, JSON.stringify(cssData))
15
19
 
16
20
  }
@@ -6,17 +6,18 @@ class OverlayMe.Overlays.Image extends Backbone.View
6
6
  tagName: 'div'
7
7
  className: 'overlay-image-block'
8
8
 
9
- initialize: (image_src, options = { destroyable: false }) ->
9
+ initialize: (image_src, options) ->
10
+ $o.extend { destroyable: false }, options
10
11
  @image_src = image_src
11
12
  @image_id = OverlayMe.Overlays.urlToId(image_src)
12
13
  $o(@el).attr 'data-img-id', @image_id
13
14
 
14
- OverlayMe.images_container = new OverlayMe.Overlays.ImagesContainer() unless OverlayMe.images_container
15
+ images_container = new OverlayMe.Overlays.ImagesContainer({ parent_path: options.parent_path })
15
16
 
16
17
  @default_css = $o.extend {display: 'none', opacity: 0.5}, options.default_css
17
18
 
18
- unless $o("##{@image_id}", OverlayMe.images_container.el).length > 0
19
- $o(OverlayMe.images_container.el).append @image()
19
+ unless $o("##{@image_id}", images_container.el).length > 0
20
+ $o(images_container.el).append @image()
20
21
 
21
22
  $o(@el).append @checkbox()
22
23
  $o(@el).append @label()
@@ -25,7 +26,8 @@ class OverlayMe.Overlays.Image extends Backbone.View
25
26
  slider_block.appendChild @make 'label', {}, 'Opacity'
26
27
  slider_block.appendChild @slider()
27
28
  $o(@el).append @delButton() if options.destroyable
28
- $o(@el).bind 'click', (event) =>
29
+ $o(@el).bind 'click', (e) =>
30
+ e.stopPropagation()
29
31
  @flickCheckbox()
30
32
  $o(@el).bind 'mouseover', (event) =>
31
33
  $o(@image.el).addClass 'highlight'
@@ -1,22 +1,61 @@
1
1
  #= require 'mixins/storable'
2
2
  #= require 'mixins/hideable'
3
3
 
4
- class OverlayMe.Overlays.ImagesContainer extends Backbone.View
4
+ class OverlayMe.Overlays.ContainerItself extends Backbone.View
5
5
 
6
- id: 'overlay_me_images_container'
6
+ tagName: 'div'
7
7
  css_attributes_to_save: ['display']
8
8
 
9
- initialize: ->
10
- container = $o('#overlay_me_images_container')
11
- if container.length < 1 # happen only if the container div doesn't already exist
12
- container = @make 'div', { id: 'overlay_me_images_container' }
13
- $o('body').append container
14
- @el = container
9
+ initialize: (attributes, options) ->
10
+ super(attributes, options)
15
11
  @loadCss()
16
- $o(window).bind 'overlay_me:toggle_all_display', =>
17
- @toggleDisplay()
12
+ $o(window).bind "overlay_me:toggle_#{@id}_display", (event, options) =>
13
+ if options
14
+ if options.show then @show() else @hide()
15
+ else
16
+ @toggleDisplay()
17
+
18
+ _.extend OverlayMe.Overlays.ContainerItself.prototype, OverlayMe.Mixin.Storable
19
+ _.extend OverlayMe.Overlays.ContainerItself.prototype, OverlayMe.Mixin.Hideable
20
+
21
+
22
+
23
+
24
+ class OverlayMe.Overlays.ImagesContainer extends Backbone.View
25
+
26
+ initialize: (options) ->
27
+ # the master image_container will be referenced publicly
28
+ unless OverlayMe.images_container
29
+ OverlayMe.images_container = new OverlayMe.Overlays.ContainerItself id:'overlay_me_images_container'
30
+ $o('body').append OverlayMe.images_container.el
31
+
32
+ # if it's a local file, we build its eventual multi-directories structure
33
+ if options.parent_path
34
+ container = @subDirContainer(options.parent_path)
35
+ # either, the default main container is the one returned
36
+ else
37
+ container = OverlayMe.images_container
38
+
39
+ # I know, it's ugly but I just want the proper DOM element, Backbone Object or not
40
+ @el = container.el || container
41
+
42
+
43
+ subDirContainer: (path, done_bits=[]) ->
44
+ path_bits = _.difference(path.split('/'), _.union(done_bits, ''))
45
+ the_dir = path_bits.slice(0, 1).toString()
46
+ if done_bits.length > 0
47
+ sub_container_parent_post_string = done_bits.join(' ').replace(/\ ?(\w+)/g, ' #$1_container')
48
+ else
49
+ sub_container_parent_post_string = ''
18
50
 
19
- # extending few mixins - thx Derick - http://stackoverflow.com/questions/7853731/proper-way-of-doing-view-mixins-in-backbone
20
- _.extend OverlayMe.Overlays.ImagesContainer.prototype, OverlayMe.Mixin.Storable
21
- _.extend OverlayMe.Overlays.ImagesContainer.prototype, OverlayMe.Mixin.Hideable
51
+ sub_container = $o("#overlay_me_images_container #{sub_container_parent_post_string} ##{the_dir+'_container'}")
52
+ if sub_container.length < 1 # if the sub_container div doesn't already exist
53
+ sub_container = new OverlayMe.Overlays.ContainerItself id: the_dir+'_container'
54
+ $o("#overlay_me_images_container #{sub_container_parent_post_string}").append sub_container.el
22
55
 
56
+ if path_bits.length > 1
57
+ done_bits.push the_dir
58
+ return @subDirContainer path, done_bits
59
+ else
60
+ return sub_container
61
+
@@ -0,0 +1,46 @@
1
+ #= require 'mixins/hideable'
2
+
3
+ class OverlayMe.Overlays.ImagesDirectory extends Backbone.View
4
+
5
+ tagName: 'div'
6
+ className: 'images_dir'
7
+
8
+ initialize: (dirname) ->
9
+ @dirname = dirname
10
+ @contentBlock = @make 'div', { id: @dirname, class: 'sub-block' }
11
+ _.extend @contentBlock, OverlayMe.Mixin.Hideable
12
+ _.extend @contentBlock, OverlayMe.Mixin.Storable
13
+ @contentBlock.css_attributes_to_save = ['display']
14
+ @contentBlock.loadCss(@contentBlock)
15
+ $o(@el).append @checkbox()
16
+ $o(@el).append @label()
17
+ $o(@el).append @contentBlock
18
+ $o(@el).bind 'click', (e) =>
19
+ e.stopPropagation()
20
+ @checkbox.click()
21
+
22
+ checkbox: ->
23
+ @checkbox = @make 'input', { type: "checkbox" }
24
+ if @contentBlock.isDisplayed()
25
+ @checkbox.checked = true
26
+ $o(@checkbox).bind 'click', (e) =>
27
+ e.stopPropagation()
28
+ @flickVisibility()
29
+ @checkbox
30
+
31
+ flickVisibility: ->
32
+ if @checkbox.checked
33
+ @contentBlock.show()
34
+ else
35
+ @contentBlock.hide()
36
+ $o(window).trigger "overlay_me:toggle_#{@dirname}_container_display", { show: @checkbox.checked }
37
+
38
+ label: ->
39
+ @label = @make 'label', {}, '/'+@dirname+'/'
40
+
41
+ append: (block) ->
42
+ @contentBlock.appendChild block
43
+
44
+ render: ->
45
+ this.el
46
+
@@ -5,15 +5,6 @@ class OverlayMe.Overlays.ImagesManagementDiv extends Backbone.View
5
5
 
6
6
  initialize: ->
7
7
  $o(@el).append @make 'legend', {}, 'Overlaying images'
8
- @controlBlock = @make 'div', { class: 'controls' }
9
- $o(@el).append @controlBlock
10
-
11
- @controlBlock.appendChild @checkAllbox()
12
- check_all_label = @make 'label', {}, 'All/None'
13
- $o(check_all_label).bind 'click', =>
14
- $o(@checkAllBox).trigger 'click'
15
- @controlBlock.appendChild check_all_label
16
-
17
8
  @overlaysListBlock = @make 'div', { class: 'overlays-list' }
18
9
  $o(@el).append @overlaysListBlock
19
10
 
@@ -43,24 +34,6 @@ class OverlayMe.Overlays.ImagesManagementDiv extends Backbone.View
43
34
  OverlayMe.dyn_manager.addImage @image_url_input.value
44
35
  @image_url_input.value = ''
45
36
 
46
- checkAllbox: ->
47
- @checkAllBox = @make 'input', { type: "checkbox", class: 'check-all' }
48
- $o(@checkAllBox).bind 'change', (event) =>
49
- @checkAll()
50
- @checkAllBox
51
-
52
- checkAll: ->
53
- checkbox_state = @checkAllBox.checked
54
- for checkbox in $o('.overlay-image-block input[type=checkbox]')
55
- if checkbox.checked != checkbox_state
56
- $o(checkbox).trigger 'click'
57
- @saveState()
58
-
59
- # adding some retention (or not)
60
- saveState: ->
61
- # localStorage.setItem(@id, JSON.stringify({
62
- # }))
63
-
64
37
  render: ->
65
38
  this.el
66
39
 
@@ -2,6 +2,7 @@
2
2
  #= require 'menu_item'
3
3
  #= require 'overlays/init'
4
4
  #= require 'overlays/image'
5
+ #= require 'overlays/images_directory'
5
6
  #= require 'overlays/dynamic_images_mngmt'
6
7
  #= require 'overlays/content_div_mngmt'
7
8
  #= require 'overlays/images_mngt_div'
@@ -42,8 +43,45 @@ if OverlayMe.mustLoad()
42
43
  if data.length == 0 # in case all is empty (default for newcomers)
43
44
  OverlayMe.loadDefaultImage()
44
45
  else
45
- $o.each data, (index, img_path) ->
46
- OverlayMe.images_management_div.append new OverlayMe.Overlays.Image(img_path).render()
46
+ buildTree data
47
47
  error: ->
48
48
  OverlayMe.loadDefaultImage()
49
49
 
50
+ files_tree = {}
51
+ buildTree = (data) ->
52
+ $o.each data, (index, img_path) ->
53
+ bits = img_path.split('/')
54
+ position = files_tree
55
+ parent_path = '/'
56
+ while bits.length > 0
57
+ bit = bits[0]
58
+ bits = bits.slice(1)
59
+ continue if bit == ""
60
+ parent_path += bit + '/'
61
+ if position[bit] == undefined
62
+ if bits.length > 0
63
+ position[bit] = { parent_path: parent_path }
64
+ else
65
+ position['files'] = [] if position['files'] == undefined
66
+ position['files'].push bit
67
+ position = position[bit]
68
+ files_tree = shiftTofiles(files_tree)
69
+ displayTree(OverlayMe.images_management_div, files_tree)
70
+
71
+ shiftTofiles = (tree) ->
72
+ return tree if tree.files
73
+ keys = Object.keys(tree)
74
+ return tree if keys.length > 2 # parent_path + sub_dir
75
+ keys = _.without(keys, 'parent_path')
76
+ shiftTofiles(tree[keys[0]])
77
+
78
+ displayTree = (parent, tree) ->
79
+ for dir in Object.keys(tree)
80
+ continue if dir == 'files' || dir == 'parent_path'
81
+ sub_dir = new OverlayMe.Overlays.ImagesDirectory(dir)
82
+ parent.append sub_dir.render()
83
+ displayTree(sub_dir, tree[dir])
84
+ if tree.files
85
+ for img in tree.files
86
+ parent.append new OverlayMe.Overlays.Image(tree.parent_path+img, { parent_path: tree.parent_path }).render()
87
+
@@ -1,7 +1,7 @@
1
1
  module OverlayMe
2
2
  MAJOR_VERSION = 0
3
- MINOR_VERSION = 12
4
- PATCH_LEVEL = 1
3
+ MINOR_VERSION = 13
4
+ PATCH_LEVEL = 0
5
5
 
6
6
  VERSION = [MAJOR_VERSION, MINOR_VERSION, PATCH_LEVEL].join '.'
7
7
  end
data/lib/overlay_me.rb CHANGED
@@ -7,7 +7,7 @@ module OverlayMe
7
7
  class App
8
8
  def self.call(env)
9
9
  Dir.chdir OverlayMe.root_dir if Dir[OverlayMe.root_dir]
10
- images_urls = Dir[ OverlayMe.overlays_directory + '/*.*' ].map{|path| '/'+path}
10
+ images_urls = Dir[ OverlayMe.overlays_directory + '/**/*.*' ].map{|path| '/'+path}
11
11
  [200, {"Content-Type" => "text/html"}, images_urls.to_json]
12
12
  end
13
13
  end
data/overlay_me.css CHANGED
@@ -50,14 +50,14 @@ button {
50
50
  vertical-align: baseline;
51
51
  }
52
52
 
53
- /* line 49, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
53
+ /* line 52, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
54
54
  .menu-item {
55
55
  text-align: left;
56
56
  background-color: #CCC;
57
57
  border: 1px solid rgba(255, 255, 255, 0.2);
58
58
  width: 200px;
59
59
  }
60
- /* line 54, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
60
+ /* line 57, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
61
61
  .menu-item a.collaps-button {
62
62
  cursor: pointer;
63
63
  position: absolute;
@@ -68,16 +68,16 @@ button {
68
68
  border: none;
69
69
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAJCAYAAADpeqZqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIlJREFUeNpivHDhQujz589TmZiYvjMQAP/+/eOQkZGZyfD//38ZIL77nzhwG4ilQJpA2BiIPxHQ8BGIDUHqYZpAOIWApiSYWmRNIDfPxaYaKD4bWR2KJiDmA+KzaHrOQMVxagJhfSD+ALXhA5TPQEgTCCcD8V+gpmRs8rg0MQI1eANpJmzyAAEGAKD/bax/HrzbAAAAAElFTkSuQmCC) no-repeat center 3px;
70
70
  }
71
- /* line 63, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
71
+ /* line 66, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
72
72
  .menu-item a.collaps-button span {
73
73
  display: none;
74
74
  color: yellow;
75
75
  }
76
- /* line 66, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
76
+ /* line 69, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
77
77
  .menu-item a.collaps-button span:hover {
78
78
  color: yellow;
79
79
  }
80
- /* line 71, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
80
+ /* line 74, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
81
81
  .menu-item label.title {
82
82
  padding-left: 20px;
83
83
  color: white;
@@ -87,21 +87,21 @@ button {
87
87
  font-size: 14px;
88
88
  background: none;
89
89
  }
90
- /* line 81, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
90
+ /* line 84, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
91
91
  .menu-item.collapsed .item-content {
92
92
  display: none;
93
93
  }
94
- /* line 82, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
94
+ /* line 85, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
95
95
  .menu-item.collapsed a.collaps-button {
96
96
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAANCAYAAAB7AEQGAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKtJREFUeNpiuHz5ctD///+lgJgBF2Z68uRJOgMDw0EgNmTAAZiA4AeQVgHiA0CchFUREpsPiOcCjZ8NZWNVBAaMjIwpQGofEOvjVAQFxkATDwJxMkgNCy7HAk3kB1KzgApf4DIJBD4CcRpQ8TZcJp2D+vQiVjcBjZ8HpBxhCtAVfQbiVKDxIMd+QtbI8u/fP04gfQ+Iw4D4LDa7WSQlJUGBdxyIn+DyAUCAAQDxsEXD9kreLQAAAABJRU5ErkJggg==) no-repeat center top;
97
97
  }
98
98
 
99
- /* line 90, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
99
+ /* line 93, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
100
100
  #overlay_panel .content-mgnt-block {
101
101
  position: relative;
102
102
  line-height: 10px;
103
103
  }
104
- /* line 93, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
104
+ /* line 96, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
105
105
  #overlay_panel .content-mgnt-block .unicorns {
106
106
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAklJREFUeNqEks1u00AQx3d27V3HdezY+SBpkKBFoBZxQEKIOwfegBs3rtwoPABvw3sgceKAuFWtUBBSaT6ctvHXer2zOElTVaoKI/2lWWl/O//ZGZi8jgSPxFv3JX93+CJvfJ4/09++vzH6S/SVH59+IohH5JagxBilC4zNHHigSLvtTCPRnLYxtB4b29ojGglBc1PG1PAyLfUxzszIX7B86MwLP/iVkS566DWeEgo+gfrWdV1VJoZgpUdqon84p1a+wxI1CA+l3Z+yqu89N5a9v65EVgK8TOpgH/edZS6JAZ97/AkfKjF3pTpRkUrlfQFnoGlaHNc2F0sAzPIFWIl9WMEGTYUZJfyB12ED2l9UE6bkDAcoy+0QznXJ8nIEBosNuIb3xLoBNIlRhNlc7Ho9dDA6l1OC8gKGUGEnhAyBFmpSu8zqf9jAzqZ/RIUxFDR0G2LQ6ueIwUzGFIuE95livS4p2RaUVQYas/p+xQ4eiavPqO2nKPUcCrvlCR50uqlirXGeiUWeua4uva6vebNDwHIJErq2fW0Mdfcxpjqmqe37Nnd73US64Ummt8a5bCpZhh5UrZanfS9gBw/5tcorGSz1TJ/rCTljoomOGDTLsh+NUz8Ypdz/ndBwlpFeIdn7Hevm9miD9QNxdVGNSQzGSR3ao6Duekm23fqT3Al/Ju3waAEnr1xyayxnymhgNcU9Z7sx5LtWA+6bquxXaeLr5J+wMZebRQwDiwW2x0O7I1y7ZxOrS+X/4Y0DXJ0pANhgM4sKRv4KMACD6UDbVgTzkgAAAABJRU5ErkJggg==) no-repeat center center;
107
107
  width: 15px;
@@ -110,12 +110,12 @@ button {
110
110
  right: 0;
111
111
  top: 6px;
112
112
  }
113
- /* line 104, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
113
+ /* line 107, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
114
114
  #overlay_panel label {
115
115
  margin: 0;
116
116
  font-size: 14px;
117
117
  }
118
- /* line 109, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
118
+ /* line 112, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
119
119
  #overlay_panel .content-mgnt-block, #overlay_panel #images_mgnt {
120
120
  text-align: left;
121
121
  padding: 3px 4px;
@@ -127,52 +127,63 @@ button {
127
127
  -o-border-radius: 5px;
128
128
  border-radius: 5px;
129
129
  }
130
- /* line 116, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
130
+ /* line 119, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
131
131
  #overlay_panel .content-mgnt-block legend, #overlay_panel #images_mgnt legend {
132
132
  font-size: 10px;
133
133
  padding: 0 3px;
134
134
  margin-left: 10px;
135
135
  }
136
- /* line 123, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
136
+ /* line 126, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
137
137
  #overlay_panel .slider-block {
138
138
  display: block;
139
139
  }
140
- /* line 125, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
140
+ /* line 128, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
141
141
  #overlay_panel .slider-block label {
142
- font-size: 70%;
142
+ font-size: 60%;
143
143
  margin: 0 5px 0 0;
144
144
  vertical-align: top;
145
145
  }
146
- /* line 130, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
146
+ /* line 133, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
147
147
  #overlay_panel .slider-block input[type=range] {
148
148
  margin: 0;
149
+ height: 14px;
150
+ width: 120px;
149
151
  }
150
- /* line 135, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
152
+ /* line 140, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
151
153
  #overlay_panel #images_mgnt {
152
154
  width: 186px;
153
155
  }
154
- /* line 139, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
156
+ /* line 144, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
155
157
  #overlay_panel #images_mgnt .controls {
156
- padding-bottom: 5px;
158
+ padding-bottom: 2px;
157
159
  }
158
- /* line 141, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
160
+ /* line 146, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
159
161
  #overlay_panel #images_mgnt .controls label {
160
162
  margin-right: 5px;
161
163
  }
162
- /* line 146, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
164
+ /* line 151, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
165
+ #overlay_panel #images_mgnt .overlay-image-block, #overlay_panel #images_mgnt .images_dir {
166
+ border: 1px solid rgba(255, 255, 255, 0.2);
167
+ border-right: none;
168
+ border-left: none;
169
+ padding-top: 2px;
170
+ }
171
+ /* line 156, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
172
+ #overlay_panel #images_mgnt .overlay-image-block:first-child, #overlay_panel #images_mgnt .images_dir:first-child {
173
+ border-top: none;
174
+ padding-top: 0;
175
+ }
176
+ /* line 162, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
163
177
  #overlay_panel #images_mgnt .overlay-image-block {
164
178
  text-align: left;
165
179
  position: relative;
166
180
  width: 186px;
167
- border: 1px solid rgba(255, 255, 255, 0.2);
168
- border-right: none;
169
- border-left: none;
170
181
  }
171
- /* line 153, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
182
+ /* line 166, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
172
183
  #overlay_panel #images_mgnt .overlay-image-block.hovered {
173
184
  background-color: rgba(255, 255, 0, 0.5);
174
185
  }
175
- /* line 156, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
186
+ /* line 169, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
176
187
  #overlay_panel #images_mgnt .overlay-image-block .del-button {
177
188
  position: absolute;
178
189
  right: 0;
@@ -187,73 +198,107 @@ button {
187
198
  font-weight: bold;
188
199
  padding: 0 3px;
189
200
  }
190
- /* line 173, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
201
+ /* line 185, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
202
+ #overlay_panel #images_mgnt .images_dir {
203
+ line-height: 18px;
204
+ }
205
+ /* line 187, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
206
+ #overlay_panel #images_mgnt .images_dir .sub-block {
207
+ border-left: 2px white solid;
208
+ padding-left: 2px;
209
+ margin-left: 5px;
210
+ }
211
+ /* line 192, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
212
+ #overlay_panel #images_mgnt .images_dir > input[type=checkbox] {
213
+ -webkit-appearance: none;
214
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAANCAYAAAB7AEQGAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKtJREFUeNpiuHz5ctD///+lgJgBF2Z68uRJOgMDw0EgNmTAAZiA4AeQVgHiA0CchFUREpsPiOcCjZ8NZWNVBAaMjIwpQGofEOvjVAQFxkATDwJxMkgNCy7HAk3kB1KzgApf4DIJBD4CcRpQ8TZcJp2D+vQiVjcBjZ8HpBxhCtAVfQbiVKDxIMd+QtbI8u/fP04gfQ+Iw4D4LDa7WSQlJUGBdxyIn+DyAUCAAQDxsEXD9kreLQAAAABJRU5ErkJggg==) no-repeat center center;
215
+ display: inline-block;
216
+ width: 13px;
217
+ height: 13px;
218
+ }
219
+ /* line 198, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
220
+ #overlay_panel #images_mgnt .images_dir > input[type=checkbox]:checked {
221
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAJCAYAAADpeqZqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIlJREFUeNpivHDhQujz589TmZiYvjMQAP/+/eOQkZGZyfD//38ZIL77nzhwG4ilQJpA2BiIPxHQ8BGIDUHqYZpAOIWApiSYWmRNIDfPxaYaKD4bWR2KJiDmA+KzaHrOQMVxagJhfSD+ALXhA5TPQEgTCCcD8V+gpmRs8rg0MQI1eANpJmzyAAEGAKD/bax/HrzbAAAAAElFTkSuQmCC) no-repeat center center;
222
+ width: 13px;
223
+ height: 13px;
224
+ margin: -2px 5px 0 0;
225
+ }
226
+ /* line 207, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
227
+ #overlay_panel #images_mgnt .dynamic-adds {
228
+ padding-top: 4px;
229
+ }
230
+ /* line 209, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
191
231
  #overlay_panel #images_mgnt .dynamic-adds label {
192
232
  font-size: 75%;
193
233
  }
194
- /* line 176, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
234
+ /* line 212, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
195
235
  #overlay_panel #images_mgnt .dynamic-adds input {
196
236
  width: 95px;
197
237
  font-size: 10px;
238
+ margin-left: 2px;
198
239
  }
199
- /* line 183, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
240
+ /* line 217, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
241
+ #overlay_panel #images_mgnt .dynamic-adds button {
242
+ font-size: 10px;
243
+ }
244
+ /* line 223, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
200
245
  #overlay_panel input[type=checkbox], #overlay_panel label, #overlay_panel #contentSlider, #overlay_panel .zindex-switch {
201
246
  display: inline;
202
247
  }
203
- /* line 187, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
248
+ /* line 227, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
204
249
  #overlay_panel input[type=checkbox] {
205
250
  vertical-align: middle;
206
251
  margin: -3px 5px 0 0;
207
252
  }
208
253
 
209
- /* line 194, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
254
+ /* line 234, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
210
255
  #overlay_me_images_container {
211
256
  position: absolute;
212
257
  z-index: 4;
213
258
  top: 0;
214
259
  left: 0;
215
260
  }
216
- /* line 199, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
261
+ /* line 239, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
217
262
  #overlay_me_images_container div {
218
263
  position: absolute;
219
264
  }
220
- /* line 201, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
265
+ /* line 241, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
221
266
  #overlay_me_images_container div.highlight {
222
267
  border: 2px solid red;
223
268
  margin-top: -2px;
224
269
  margin-left: -2px;
225
270
  }
226
- /* line 206, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
271
+ /* line 246, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
227
272
  #overlay_me_images_container div:hover {
228
273
  cursor: move;
229
274
  }
230
- /* line 210, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
275
+ /* line 250, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
231
276
  #overlay_me_images_container img {
232
277
  position: absolute;
233
278
  top: 0;
234
279
  left: 0;
235
280
  }
236
281
 
237
- /* line 218, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
282
+ /* line 258, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
238
283
  #overlay_me_menu.collapsed .drag-me, #overlay_me_menu.collapsed .menu-item {
239
284
  width: 25px;
240
285
  }
241
- /* line 221, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
286
+ /* line 261, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
242
287
  #overlay_me_menu.collapsed .drag-me {
243
288
  height: 10px;
244
289
  overflow: hidden;
245
290
  }
246
- /* line 225, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
291
+ /* line 265, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
247
292
  #overlay_me_menu.collapsed button {
248
293
  height: 10px;
249
294
  overflow: hidden;
250
295
  }
251
- /* line 229, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
296
+ /* line 269, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
252
297
  #overlay_me_menu.collapsed .overlay-image-block {
253
298
  height: 14px;
254
299
  margin-top: 3px;
255
300
  }
256
- /* line 233, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
301
+ /* line 273, /Users/ffmini/Programming/overlay_me/stylesheets/overlay_me.css.scss */
257
302
  #overlay_me_menu.collapsed .overlay-image-block label, #overlay_me_menu.collapsed #content_div_management_block, #overlay_me_menu.collapsed .controls, #overlay_me_menu.collapsed input[type=range], #overlay_me_menu.collapsed #overlay_panel #contentSlider, #overlay_me_menu.collapsed legend, #overlay_me_menu.collapsed .dynamic-adds, #overlay_me_menu.collapsed .unicorns, #overlay_me_menu.collapsed button.reset, #overlay_me_menu.collapsed button.hide, #overlay_me_menu.collapsed button.del-button {
258
303
  display: none;
259
304
  }