bootstrap_sidebar_rails 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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c4169e57aa5290e78209a27d2d2b8a39b773c64b
4
+ data.tar.gz: 2b2371068094d68a99e1cd50b98b453ca33c7030
5
+ SHA512:
6
+ metadata.gz: 029a6d5c31518af4f2b4f8763975738435fe9e375ee4c27ae037095792c445e61385bfc92b55e1886c19843a94e48469257167bc0b119e5bb9a1f9c302258d93
7
+ data.tar.gz: 87cd6064b9682e6fa10b35d6112b792014ff9ed2ed4df11d94f2e94279a633732d67a5a33aadf8f573fae18af7660068fcbac08b307927c6239a11d48cec3bab
data/README.md ADDED
@@ -0,0 +1,37 @@
1
+ # Bootstrap Sidebar Rails
2
+
3
+ It wraps the https://github.com/asyraf9/bootstrap-sidebar library in a rails engine for simple use with the asset pipeline. The gem includes the development (non-minified) source for ease of exploration. The asset pipeline will minify in production.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'bootstrap_sidebar_rails'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install bootstrap_sidebar_rails
18
+
19
+ ## Usage
20
+
21
+ Add the following directive to your Javascript manifest file (application.js):
22
+ ```
23
+ //= require sidebar
24
+ ```
25
+
26
+ and to the CSS manifest (application.css)
27
+
28
+ ```
29
+ *= require sidebar
30
+ ```
31
+ ## Contributing
32
+
33
+ 1. Fork it ( https://github.com/valerykalashnikov/bootstrap_sidebar_rails/fork )
34
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
35
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
36
+ 4. Push to the branch (`git push origin my-new-feature`)
37
+ 5. Create a new Pull Request
@@ -0,0 +1,3 @@
1
+ module BootstrapSidebarRails
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,8 @@
1
+ require "bootstrap_sidebar_rails/version"
2
+
3
+ module BootstrapSidebarRails
4
+ module Rails
5
+ class Engine < ::Rails::Engine
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,130 @@
1
+ /* ========================================================================
2
+ * Bootstrap: sidebar.js v0.1
3
+ * ========================================================================
4
+ * Copyright 2011-2014 Asyraf Abdul Rahman
5
+ * Licensed under MIT
6
+ * ======================================================================== */
7
+
8
+ +function ($) {
9
+ 'use strict';
10
+
11
+ // SIDEBAR PUBLIC CLASS DEFINITION
12
+ // ================================
13
+
14
+ var Sidebar = function (element, options) {
15
+ this.$element = $(element)
16
+ this.options = $.extend({}, Sidebar.DEFAULTS, options)
17
+ this.transitioning = null
18
+
19
+ if (this.options.parent) this.$parent = $(this.options.parent)
20
+ if (this.options.toggle) this.toggle()
21
+ }
22
+
23
+ Sidebar.DEFAULTS = {
24
+ toggle: true
25
+ }
26
+
27
+ Sidebar.prototype.show = function () {
28
+ if (this.transitioning || this.$element.hasClass('sidebar-open')) return
29
+
30
+
31
+ var startEvent = $.Event('show.bs.sidebar')
32
+ this.$element.trigger(startEvent);
33
+ if (startEvent.isDefaultPrevented()) return
34
+
35
+ this.$element
36
+ .addClass('sidebar-open')
37
+
38
+ this.transitioning = 1
39
+
40
+ var complete = function () {
41
+ this.$element
42
+ this.transitioning = 0
43
+ this.$element.trigger('shown.bs.sidebar')
44
+ }
45
+
46
+ if(!$.support.transition) return complete.call(this)
47
+
48
+ this.$element
49
+ .one($.support.transition.end, $.proxy(complete, this))
50
+ .emulateTransitionEnd(400)
51
+ }
52
+
53
+ Sidebar.prototype.hide = function () {
54
+ if (this.transitioning || !this.$element.hasClass('sidebar-open')) return
55
+
56
+ var startEvent = $.Event('hide.bs.sidebar')
57
+ this.$element.trigger(startEvent)
58
+ if(startEvent.isDefaultPrevented()) return
59
+
60
+ this.$element
61
+ .removeClass('sidebar-open')
62
+
63
+ this.transitioning = 1
64
+
65
+ var complete = function () {
66
+ this.transitioning = 0
67
+ this.$element
68
+ .trigger('hidden.bs.sidebar')
69
+ }
70
+
71
+ if (!$.support.transition) return complete.call(this)
72
+
73
+ this.$element
74
+ .one($.support.transition.end, $.proxy(complete, this))
75
+ .emulateTransitionEnd(400)
76
+ }
77
+
78
+ Sidebar.prototype.toggle = function () {
79
+ this[this.$element.hasClass('sidebar-open') ? 'hide' : 'show']()
80
+ }
81
+
82
+ var old = $.fn.sidebar
83
+
84
+ $.fn.sidebar = function (option) {
85
+ return this.each(function (){
86
+ var $this = $(this)
87
+ var data = $this.data('bs.sidebar')
88
+ var options = $.extend({}, Sidebar.DEFAULTS, $this.data(), typeof options == 'object' && option)
89
+
90
+ if (!data && options.toggle && option == 'show') option = !option
91
+ if (!data) $this.data('bs.sidebar', (data = new Sidebar(this, options)))
92
+ if (typeof option == 'string') data[option]()
93
+ })
94
+ }
95
+
96
+ $.fn.sidebar.Constructor = Sidebar
97
+
98
+ $.fn.sidebar.noConflict = function () {
99
+ $.fn.sidebar = old
100
+ return this
101
+ }
102
+
103
+ $(document).on('click.bs.sidebar.data-api', '[data-toggle="sidebar"]', function (e) {
104
+ var $this = $(this), href
105
+ var target = $this.attr('data-target')
106
+ || e.preventDefault()
107
+ || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')
108
+ var $target = $(target)
109
+ var data = $target.data('bs.sidebar')
110
+ var option = data ? 'toggle' : $this.data()
111
+
112
+ $target.sidebar(option)
113
+ })
114
+
115
+ $('html').on('click.bs.sidebar.autohide', function(event){
116
+ var $this = $(event.target);
117
+ var isButtonOrSidebar = $this.is('.sidebar, [data-toggle="sidebar"]') || $this.parents('.sidebar, [data-toggle="sidebar"]').length;
118
+ if (isButtonOrSidebar) {
119
+ return;
120
+ } else {
121
+ var $target = $('.sidebar');
122
+ $target.each(function(i, trgt) {
123
+ var $trgt = $(trgt);
124
+ if($trgt.data('bs.sidebar') && $trgt.hasClass('sidebar-open')) {
125
+ $trgt.sidebar('hide');
126
+ }
127
+ })
128
+ }
129
+ });
130
+ }(jQuery);
@@ -0,0 +1,164 @@
1
+ /* All the default sidebar styles */
2
+ /* toggle button settings */
3
+ /* Note: this disables the navbar-toggle class's hide function. set visibility with the boostrap visible/hidden classes */
4
+ /* Note: this also disables the navbar-header class positioning settings in small screens. */
5
+ .navbar.navbar-static .navbar-header {
6
+ float: left;
7
+ }
8
+
9
+ .navbar .navbar-toggle.toggle-left {
10
+ float: left;
11
+ margin-left: 15px;
12
+ }
13
+
14
+ .navbar .navbar-toggle.toggle-right {
15
+ float: right;
16
+ margin-right: 15px;
17
+ }
18
+
19
+ .navbar .navbar-toggle.toggle-sidebar, [data-toggle="sidebar"] {
20
+ display: block;
21
+ }
22
+
23
+ /* sidebar settings */
24
+ .sidebar {
25
+ position: fixed;
26
+ display: block;
27
+ top: 51px;
28
+ bottom: 0;
29
+ z-index: 1000;
30
+ min-height: 100%;
31
+ max-height: none;
32
+ overflow: auto;
33
+ }
34
+
35
+ .sidebar-left {
36
+ left: 0;
37
+ }
38
+
39
+ .sidebar-right {
40
+ right: 0;
41
+ }
42
+
43
+ /* css to override hiding the sidebar according to different screen sizes */
44
+ .row .sidebar.sidebar-left.sidebar-xs-show {
45
+ left: 0;
46
+ -webkit-transform: translate(0,0);
47
+ -ms-transform: translate(0,0);
48
+ -o-transform: translate(0,0);
49
+ -moz-transform: translate(0,0);
50
+ transform: translate(0,0);
51
+ }
52
+
53
+ /*right sidebar is untested */
54
+ .row .sidebar.sidebar-right.sidebar-xs-show {
55
+ right: 0;
56
+ -webkit-transform: translate(0,0);
57
+ -ms-transform: translate(0,0);
58
+ -o-transform: translate(0,0);
59
+ -moz-transform: translate(0,0);
60
+ transform: translate(0,0);
61
+ }
62
+
63
+ @media (min-width: 768px) {
64
+ .row .sidebar.sidebar-left.sidebar-sm-show {
65
+ left: 0;
66
+ -webkit-transform: translate(0,0);
67
+ -ms-transform: translate(0,0);
68
+ -o-transform: translate(0,0);
69
+ -moz-transform: translate(0,0);
70
+ transform: translate(0,0);
71
+ }
72
+
73
+ /*right sidebar is untested */
74
+ .row .sidebar.sidebar-right.sidebar-sm-show {
75
+ right: 0;
76
+ -webkit-transform: translate(0,0);
77
+ -ms-transform: translate(0,0);
78
+ -o-transform: translate(0,0);
79
+ -moz-transform: translate(0,0);
80
+ transform: translate(0,0);
81
+ }
82
+ }
83
+
84
+ @media (min-width: 992px) {
85
+ .row .sidebar.sidebar-left.sidebar-md-show {
86
+ left: 0;
87
+ -webkit-transform: translate(0,0);
88
+ -ms-transform: translate(0,0);
89
+ -o-transform: translate(0,0);
90
+ -moz-transform: translate(0,0);
91
+ transform: translate(0,0);
92
+ }
93
+
94
+ .row .sidebar.sidebar-right.sidebar-md-show {
95
+ right: 0;
96
+ -webkit-transform: translate(0,0);
97
+ -ms-transform: translate(0,0);
98
+ -o-transform: translate(0,0);
99
+ -moz-transform: translate(0,0);
100
+ transform: translate(0,0);
101
+ }
102
+ }
103
+
104
+ @media (min-width: 1170px) {
105
+ .row .sidebar.sidebar-left.sidebar-lg-show {
106
+ left: 0;
107
+ -webkit-transform: translate(0,0);
108
+ -moz-transform: translate(0,0);
109
+ -ms-transform: translate(0,0);
110
+ -o-transform: translate(0,0);
111
+ transform: translate(0,0);
112
+ }
113
+
114
+ .row .sidebar.sidebar-right.sidebar-lg-show {
115
+ right: 0;
116
+ -webkit-transform: translate(0,0);
117
+ -moz-transform: translate(0,0);
118
+ -ms-transform: translate(0,0);
119
+ -o-transform: translate(0,0);
120
+ transform: translate(0,0);
121
+ }
122
+ }
123
+
124
+ /* animation class - optional: without it the sidebar would just pop in and out*/
125
+ .sidebar-animate {
126
+ -webkit-transition: -webkit-transform 300ms ease;
127
+ -moz-transition: -moz-transform 300ms ease;
128
+ -o-transition: transform 300ms ease;
129
+ transition: transform 300ms ease;
130
+ }
131
+
132
+ /* Left panel positioning classes */
133
+ .sidebar.sidebar-left {
134
+ -webkit-transform: translate(-100%,0);
135
+ -moz-transform: translate(-100%,0);
136
+ -ms-transform: translate(-100%,0);
137
+ -o-transform: translate(-100%,0);
138
+ transform: translate(-100%,0);
139
+ }
140
+
141
+ .sidebar.sidebar-left.sidebar-open {
142
+ -webkit-transform: translate(0,0);
143
+ -moz-transform: translate(0,0);
144
+ -ms-transform: translate(0,0);
145
+ -o-transform: translate(0,0);
146
+ transform: translate(0,0);
147
+ }
148
+
149
+ /* TODO: TEST THIS! Right panel positioning classes*/
150
+ .sidebar.sidebar-right {
151
+ -webkit-transform: translate(-100%,0);
152
+ -moz-transform: translate(-100%,0);
153
+ -ms-transform: translate(-100%,0);
154
+ -o-transform: translate(-100%,0);
155
+ transform: translate(-100%,0);
156
+ }
157
+
158
+ .sidebar.sidebar-right.sidebar-open {
159
+ -webkit-transform: translate(0,0);
160
+ -moz-transform: translate(0,0);
161
+ -ms-transform: translate(0,0);
162
+ -o-transform: translate(0,0);
163
+ transform: translate(0,0);
164
+ }
metadata ADDED
@@ -0,0 +1,63 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bootstrap_sidebar_rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Valery Kalashnikov
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: railties
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '3.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '3.1'
27
+ description: Bootstrap-sidebar Rails
28
+ email:
29
+ - kalashnikov.valeri@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - README.md
35
+ - lib/bootstrap_sidebar_rails.rb
36
+ - lib/bootstrap_sidebar_rails/version.rb
37
+ - vendor/assets/javascripts/sidebar.js
38
+ - vendor/assets/stylesheets/sidebar.css
39
+ homepage: ''
40
+ licenses:
41
+ - MIT
42
+ metadata: {}
43
+ post_install_message:
44
+ rdoc_options: []
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
52
+ required_rubygems_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ requirements: []
58
+ rubyforge_project:
59
+ rubygems_version: 2.2.2
60
+ signing_key:
61
+ specification_version: 4
62
+ summary: The bootstrap-sidebar JavaScript library ready to play with Rails
63
+ test_files: []