bootstrap_sidebar_rails 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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: []