simple_sidebar 0.0.4.pre → 0.0.5.pre

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aebaac8e3e6cc1e73ae62d30e4e6c46bf2ac854864b3e2fb4d7806a87af13cb0
4
- data.tar.gz: 528927b63e00292f69bd2cbd126bcdcd2a80c6df66c344ab10a214f4066b973a
3
+ metadata.gz: 2e7a64b43e41a0c5e8329c8a7ea796c2f48dd99ead237f91f3709ebd2b523aea
4
+ data.tar.gz: b53501cea0aeeceaa9715559dfb6359fed536e636662426aeb8b0f2d2340f618
5
5
  SHA512:
6
- metadata.gz: 6ceeba101cfee8f105bd7f5eed55272c92e60274ac744d8ec0465b19934e1bf784b320504681aecd7c4c66e81c16fa3ff124a33d9b684787dacab2a5b681061d
7
- data.tar.gz: 9f6767bfc1a85b18143be4ba06b469afc10bac76e27b4fca8f59a833525a19deb49e81c1837e868e7c593654bd5cda02e10b13d292709dd891c4eb8cdbcc890b
6
+ metadata.gz: 119cc66208ea5e6f7f4930fff4d69d10a8ac2cc2da9659682e3015e0ba7c136fc49de45e352423fc937d5ad45d0cb875e1a4abb76f6f121d6e17fa9ebf449156
7
+ data.tar.gz: c4461c81889535cac550f56f3d51757214e7b73939d862a14602497e5522c9293e6ba57e10278389bdbec93b4c0830dbfccfec8a4bc24b95513c0b8165b97d51
@@ -28,6 +28,7 @@
28
28
  # modal: Like overlay, but with a modal background.
29
29
  # position: left|right|top|bottom
30
30
  # size: size that the sidebar will take up (width for left and right, height for top and bottom). Pass any css size in px, rem or whatever you like.
31
+ # state: open|closed
31
32
  #
32
33
  $ ->
33
34
  initializeSidebars = ->
@@ -36,6 +37,8 @@ $ ->
36
37
  position = $(@).data('sidebar-position')
37
38
  mode = $(@).data('sidebar-mode')
38
39
  size = $(@).data('sidebar-size')
40
+ state = $(@).data('sidebar-state')
41
+
39
42
  $(e).addClass("sidebar sidebar-#{position} sidebar-#{mode}")
40
43
 
41
44
  # set correct size
@@ -51,14 +54,16 @@ $ ->
51
54
  # display it
52
55
  $(e).css("display", "inherit")
53
56
 
54
- initializeSidebars()
57
+ # set initial state
58
+ if state == 'open'
59
+ openSidebar($(@), false)
60
+
55
61
 
56
62
  initializeModalBackground = ->
57
63
  $('body').on 'click', '#sidebar-modal-background', ->
58
64
  target = $("##{$(@).data('sidebar-target')}")
59
65
  closeSidebar(target)
60
66
 
61
- initializeModalBackground()
62
67
 
63
68
  initializeTriggers = ->
64
69
  $('[data-sidebar-trigger]').on 'click', ->
@@ -66,13 +71,12 @@ $ ->
66
71
  state = target.data('sidebar-state')
67
72
 
68
73
  if state == 'closed'
69
- openSidebar(target)
74
+ openSidebar(target, true)
70
75
  else
71
- closeSidebar(target)
76
+ closeSidebar(target, true)
72
77
 
73
- initializeTriggers()
74
78
 
75
- openSidebar = (target) ->
79
+ openSidebar = (target, animate = false) ->
76
80
  main_content = $('#main-content')
77
81
 
78
82
  position = target.data('sidebar-position')
@@ -80,12 +84,17 @@ $ ->
80
84
  size = target.data('sidebar-size')
81
85
 
82
86
  # Move sidebar into viewport
83
- target.css(position, 0)
87
+ if(animate == true)
88
+ target.animate({ "#{position}": 0 }, 500);
89
+ else
90
+ target.css(position, 0)
84
91
 
85
92
  # Add margin equal to sidebar width/height to main content to make room
86
93
  # for the sidebar if in push mode
87
- main_content.css("margin-#{position}", size) if mode == 'push'
88
-
94
+ if(animate == true)
95
+ main_content.animate({ "margin-#{position}": size }, 500);
96
+ else
97
+ main_content.css("margin-#{position}", size) if mode == 'push'
89
98
 
90
99
  # add modal if in modal mode
91
100
  if mode == 'modal'
@@ -103,9 +112,9 @@ $ ->
103
112
  return
104
113
 
105
114
  # set state
106
- target.data('sidebar-state', 'opened')
115
+ target.data('sidebar-state', 'open')
107
116
 
108
- closeSidebar = (target) ->
117
+ closeSidebar = (target, animate = false) ->
109
118
  main_content = $('#main-content')
110
119
 
111
120
  position = target.data('sidebar-position')
@@ -115,14 +124,23 @@ $ ->
115
124
 
116
125
  # push
117
126
  if mode == 'push'
118
- # main_content.css("margin-#{position}", size)
119
- main_content.css("margin-#{position}", '0px')
127
+ if(animate == true)
128
+ main_content.animate({ 'marginLeft': 0 }, 500);
129
+ else
130
+ main_content.css("margin-#{position}", '0px')
120
131
 
121
132
  # modal
122
133
  if mode == 'modal'
123
134
  $("#sidebar-modal-background").remove()
124
135
 
125
- target.css(position, "-#{target.outerWidth()}px")
136
+ if(animate == true)
137
+ target.animate({ "#{position}": "-#{target.outerWidth()}px" }, 500);
138
+ else
139
+ target.css(position, "-#{target.outerWidth()}px")
126
140
 
127
141
  # set state
128
142
  target.data('sidebar-state', 'closed')
143
+
144
+ initializeSidebars()
145
+ initializeModalBackground()
146
+ initializeTriggers()
@@ -0,0 +1,151 @@
1
+ # Usage:
2
+ #
3
+ # Put all the content that is not in the sidebar in a container with the id #main-content a trigger button and add a sidebar.
4
+ #
5
+ # <body>
6
+ # <div id="main-content">
7
+ # <button data-sidebar-trigger="#example-sidebar">
8
+ # Toggle the example sidebar!
9
+ # </button>
10
+ # </div>
11
+ # <aside
12
+ # id="example-sidebar"
13
+ # data-sidebar-load="/de/backend/authentifizierung/user_sidebar.html"
14
+ # data-sidebar-mode="overlay"
15
+ # data-sidebar-position="right"
16
+ # data-sidebar-size="20rem"
17
+ # data-sidebar-state="closed">
18
+ # <h3>Hello from the example sidebar!</h3>
19
+ # </aside>
20
+ # </body>
21
+ #
22
+ # Options:
23
+ #
24
+ # load: Passing an url to load will load the content of the url via ajax and display it in the sidebar.
25
+ # mode:
26
+ # push: This will decrease the size of the main content, making room for the sidebar.
27
+ # overlay: This will show the sidebar on top of the content, without moving it.
28
+ # modal: Like overlay, but with a modal background.
29
+ # position: left|right|top|bottom
30
+ # size: size that the sidebar will take up (width for left and right, height for top and bottom). Pass any css size in px, rem or whatever you like.
31
+ #
32
+ $ ->
33
+ initializeSidebars = ->
34
+ $('[data-sidebar-position]').each (_, e) ->
35
+ # add css classes
36
+ position = $(@).data('sidebar-position')
37
+ mode = $(@).data('sidebar-mode')
38
+ size = $(@).data('sidebar-size')
39
+ state = $(@).data('sidebar-state')
40
+ console.log(state)
41
+ $(e).addClass("sidebar sidebar-#{position} sidebar-#{mode}")
42
+
43
+ # set correct size
44
+ if position in ['top', 'bottom']
45
+ $(e).outerHeight(size)
46
+ else
47
+ $(e).outerWidth(size)
48
+
49
+ # position outside of viewport
50
+ outer_width = $(e).outerWidth()
51
+ $(e).css(position, "-#{outer_width}px")
52
+
53
+ # display it
54
+ $(e).css("display", "inherit")
55
+
56
+ # set initial state
57
+ if state == 'opened'
58
+ openSidebar($(@), false)
59
+
60
+
61
+ initializeModalBackground = ->
62
+ $('body').on 'click', '#sidebar-modal-background', ->
63
+ target = $("##{$(@).data('sidebar-target')}")
64
+ closeSidebar(target)
65
+
66
+
67
+ initializeTriggers = ->
68
+ $('[data-sidebar-trigger]').on 'click', ->
69
+ target = $($(@).data('sidebar-trigger'))
70
+ state = target.data('sidebar-state')
71
+
72
+ if state == 'closed'
73
+ openSidebar(target)
74
+ else
75
+ closeSidebar(target)
76
+
77
+
78
+ openSidebar = (target, fadeIn = true) ->
79
+ main_content = $('#main-content')
80
+
81
+ position = target.data('sidebar-position')
82
+ mode = target.data('sidebar-mode')
83
+ size = target.data('sidebar-size')
84
+
85
+ # Add margin equal to sidebar width/height to main content to make room
86
+ # for the sidebar if in push mode
87
+ if(mode == 'push')
88
+ if(fadeIn == true)
89
+ # main_content.toggleClass('transition-none')
90
+ main_content.css("transition", "margin .5s")
91
+
92
+ # Move sidebar into viewport
93
+ target.css(position, 0)
94
+
95
+ main_content.css("margin-#{position}", size)
96
+
97
+ if(fadeIn == true)
98
+ main_content.offsetHeight;
99
+ target.offsetHeight;
100
+ # main_content.toggleClass('transition-none')
101
+ main_content.css("transition", "none")
102
+ else
103
+ # Move sidebar into viewport
104
+ target.css(position, 0)
105
+
106
+ # add modal if in modal mode
107
+ if mode == 'modal'
108
+ $("body").append("<div id=\"sidebar-modal-background\" data-sidebar-target=\"#{target.attr('id')}\"></div>")
109
+ if(fadeIn == true)
110
+ $('#sidebar-modal-background').fadeIn()
111
+ else
112
+ $('#sidebar-modal-background').show()
113
+
114
+ # load content via ajax if the load option was given
115
+ if target.data('sidebar-load')
116
+ url = target.data('sidebar-load')
117
+ $.ajax
118
+ type: 'GET'
119
+ url: url
120
+ success: (response) ->
121
+ $(target).html(response)
122
+ return
123
+
124
+ # set state
125
+ target.data('sidebar-state', 'opened')
126
+
127
+ closeSidebar = (target) ->
128
+ main_content = $('#main-content')
129
+
130
+ position = target.data('sidebar-position')
131
+ mode = target.data('sidebar-mode')
132
+ size_attribute = if position in ['top', 'bottom'] then 'height' else 'width'
133
+ size = target.data('sidebar-size')
134
+
135
+ # push
136
+ if mode == 'push'
137
+ # main_content.css("margin-#{position}", size)
138
+ main_content.css("margin-#{position}", '0px')
139
+
140
+ # modal
141
+ if mode == 'modal'
142
+ $("#sidebar-modal-background").remove()
143
+
144
+ target.css(position, "-#{target.outerWidth()}px")
145
+
146
+ # set state
147
+ target.data('sidebar-state', 'closed')
148
+
149
+ initializeSidebars()
150
+ initializeModalBackground()
151
+ initializeTriggers()
@@ -15,29 +15,23 @@
15
15
  .sidebar-left {
16
16
  height: 100%;
17
17
  top: 0;
18
- transition: left .5s;
19
18
  overflow-y: auto;
20
19
  }
21
20
  .sidebar-right {
22
21
  height: 100%;
23
22
  top: 0;
24
- transition: right .5s;
25
23
  overflow-y: auto;
26
24
  }
27
25
  .sidebar-top {
28
26
  width: 100%;
29
27
  left: 0;
30
- transition: top .5s;
31
28
  }
32
29
  .sidebar-bottom {
33
30
  width: 100%;
34
31
  left: 0;
35
- transition: bottom .5s;
36
32
  }
37
33
 
38
- #main-content {
39
- transition: margin .5s;
40
- }
34
+ #main-content {}
41
35
 
42
36
  #sidebar-modal-background {
43
37
  display: none;
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SimpleSidebar
4
- VERSION = "0.0.4.pre".freeze
4
+ VERSION = "0.0.5.pre".freeze
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_sidebar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4.pre
4
+ version: 0.0.5.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Vasquez Angel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-03 00:00:00.000000000 Z
11
+ date: 2021-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -120,6 +120,7 @@ files:
120
120
  - app/assets/javascripts/simple_sidebar.js
121
121
  - app/assets/javascripts/simple_sidebar/application.js
122
122
  - app/assets/javascripts/simple_sidebar/application/core.js.coffee
123
+ - app/assets/javascripts/simple_sidebar/application/core.js.coffee~
123
124
  - app/assets/stylesheets/simple_sidebar.css
124
125
  - app/assets/stylesheets/simple_sidebar/application.css
125
126
  - app/assets/stylesheets/simple_sidebar/application/core.css
@@ -149,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
150
  - !ruby/object:Gem::Version
150
151
  version: 1.3.1
151
152
  requirements: []
152
- rubygems_version: 3.0.3
153
+ rubygems_version: 3.0.8
153
154
  signing_key:
154
155
  specification_version: 4
155
156
  summary: Simple sidebar.