newton-rails 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,243 @@
1
+ /* ========================================================================
2
+ * Bootstrap: modal.js v3.0.0
3
+ * http://twitter.github.com/bootstrap/javascript.html#modals
4
+ * ========================================================================
5
+ * Copyright 2012 Twitter, Inc.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ * ======================================================================== */
19
+
20
+
21
+ +function ($) { "use strict";
22
+
23
+ // MODAL CLASS DEFINITION
24
+ // ======================
25
+
26
+ var Modal = function (element, options) {
27
+ this.options = options
28
+ this.$element = $(element).delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
29
+ this.$backdrop =
30
+ this.isShown = null
31
+
32
+ if (this.options.remote) this.$element.find('.modal-body').load(this.options.remote)
33
+ }
34
+
35
+ Modal.DEFAULTS = {
36
+ backdrop: true
37
+ , keyboard: true
38
+ , show: true
39
+ }
40
+
41
+ Modal.prototype.toggle = function () {
42
+ return this[!this.isShown ? 'show' : 'hide']()
43
+ }
44
+
45
+ Modal.prototype.show = function () {
46
+ var that = this
47
+ var e = $.Event('show.bs.modal')
48
+
49
+ this.$element.trigger(e)
50
+
51
+ if (this.isShown || e.isDefaultPrevented()) return
52
+
53
+ this.isShown = true
54
+
55
+ this.escape()
56
+
57
+ this.backdrop(function () {
58
+ var transition = $.support.transition && that.$element.hasClass('fade')
59
+
60
+ if (!that.$element.parent().length) {
61
+ that.$element.appendTo(document.body) // don't move modals dom position
62
+ }
63
+
64
+ that.$element.show()
65
+
66
+ if (transition) {
67
+ that.$element[0].offsetWidth // force reflow
68
+ }
69
+
70
+ that.$element
71
+ .addClass('in')
72
+ .attr('aria-hidden', false)
73
+
74
+ that.enforceFocus()
75
+
76
+ transition ?
77
+ that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown.bs.modal') }) :
78
+ that.$element.focus().trigger('shown.bs.modal')
79
+ })
80
+ }
81
+
82
+ Modal.prototype.hide = function (e) {
83
+ if (e) e.preventDefault()
84
+
85
+ e = $.Event('hide.bs.modal')
86
+
87
+ this.$element.trigger(e)
88
+
89
+ if (!this.isShown || e.isDefaultPrevented()) return
90
+
91
+ this.isShown = false
92
+
93
+ this.escape()
94
+
95
+ $(document).off('focusin.bs.modal')
96
+
97
+ this.$element
98
+ .removeClass('in')
99
+ .attr('aria-hidden', true)
100
+
101
+ $.support.transition && this.$element.hasClass('fade') ?
102
+ this.hideWithTransition() :
103
+ this.hideModal()
104
+ }
105
+
106
+ Modal.prototype.enforceFocus = function () {
107
+ $(document)
108
+ .off('focusin.bs.modal') // guard against infinite focus loop
109
+ .on('focusin.bs.modal', $.proxy(function (e) {
110
+ if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
111
+ this.$element.focus()
112
+ }
113
+ }, this))
114
+ }
115
+
116
+ Modal.prototype.escape = function () {
117
+ if (this.isShown && this.options.keyboard) {
118
+ this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) {
119
+ e.which == 27 && this.hide()
120
+ }, this))
121
+ } else if (!this.isShown) {
122
+ this.$element.off('keyup.dismiss.bs.modal')
123
+ }
124
+ }
125
+
126
+ Modal.prototype.hideWithTransition = function () {
127
+ var that = this
128
+ var timeout = setTimeout(function () {
129
+ that.$element.off($.support.transition.end)
130
+ that.hideModal()
131
+ }, 500)
132
+
133
+ this.$element.one($.support.transition.end, function () {
134
+ clearTimeout(timeout)
135
+ that.hideModal()
136
+ })
137
+ }
138
+
139
+ Modal.prototype.hideModal = function () {
140
+ var that = this
141
+ this.$element.hide()
142
+ this.backdrop(function () {
143
+ that.removeBackdrop()
144
+ that.$element.trigger('hidden.bs.modal')
145
+ })
146
+ }
147
+
148
+ Modal.prototype.removeBackdrop = function () {
149
+ this.$backdrop && this.$backdrop.remove()
150
+ this.$backdrop = null
151
+ }
152
+
153
+ Modal.prototype.backdrop = function (callback) {
154
+ var that = this
155
+ var animate = this.$element.hasClass('fade') ? 'fade' : ''
156
+
157
+ if (this.isShown && this.options.backdrop) {
158
+ var doAnimate = $.support.transition && animate
159
+
160
+ this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
161
+ .appendTo(document.body)
162
+
163
+ this.$backdrop.click(
164
+ this.options.backdrop == 'static' ?
165
+ $.proxy(this.$element[0].focus, this.$element[0])
166
+ : $.proxy(this.hide, this)
167
+ )
168
+
169
+ if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
170
+
171
+ this.$backdrop.addClass('in')
172
+
173
+ if (!callback) return
174
+
175
+ doAnimate ?
176
+ this.$backdrop.one($.support.transition.end, callback) :
177
+ callback()
178
+
179
+ } else if (!this.isShown && this.$backdrop) {
180
+ this.$backdrop.removeClass('in')
181
+
182
+ $.support.transition && this.$element.hasClass('fade')?
183
+ this.$backdrop.one($.support.transition.end, callback) :
184
+ callback()
185
+
186
+ } else if (callback) {
187
+ callback()
188
+ }
189
+ }
190
+
191
+
192
+ // MODAL PLUGIN DEFINITION
193
+ // =======================
194
+
195
+ var old = $.fn.modal
196
+
197
+ $.fn.modal = function (option) {
198
+ return this.each(function () {
199
+ var $this = $(this)
200
+ var data = $this.data('bs.modal')
201
+ var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
202
+
203
+ if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
204
+ if (typeof option == 'string') data[option]()
205
+ else if (options.show) data.show()
206
+ })
207
+ }
208
+
209
+ $.fn.modal.Constructor = Modal
210
+
211
+
212
+ // MODAL NO CONFLICT
213
+ // =================
214
+
215
+ $.fn.modal.noConflict = function () {
216
+ $.fn.modal = old
217
+ return this
218
+ }
219
+
220
+
221
+ // MODAL DATA-API
222
+ // ==============
223
+
224
+ $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
225
+ var $this = $(this)
226
+ var href = $this.attr('href')
227
+ var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
228
+ var option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())
229
+
230
+ e.preventDefault()
231
+
232
+ $target
233
+ .modal(option)
234
+ .one('hide', function () {
235
+ $this.focus()
236
+ })
237
+ })
238
+
239
+ var $body = $(document.body)
240
+ .on('bs.modal.shown', '.modal', function () { $body.addClass('modal-open') })
241
+ .on('bs.modal.hidden', '.modal', function () { $body.removeClass('modal-open') })
242
+
243
+ }(window.jQuery);
@@ -0,0 +1,109 @@
1
+ /* ========================================================================
2
+ * Bootstrap: popover.js v3.0.0
3
+ * http://twitter.github.com/bootstrap/javascript.html#popovers
4
+ * ========================================================================
5
+ * Copyright 2012 Twitter, Inc.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ * ======================================================================== */
19
+
20
+
21
+ +function ($) { "use strict";
22
+
23
+ // POPOVER PUBLIC CLASS DEFINITION
24
+ // ===============================
25
+
26
+ var Popover = function (element, options) {
27
+ this.init('popover', element, options)
28
+ }
29
+
30
+ Popover.DEFAULTS = $.extend({} , $.fn.tooltip.Constructor.DEFAULTS, {
31
+ placement: 'right'
32
+ , trigger: 'click'
33
+ , content: ''
34
+ , template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
35
+ })
36
+
37
+
38
+ // NOTE: POPOVER EXTENDS tooltip.js
39
+ // ================================
40
+
41
+ Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
42
+
43
+ Popover.prototype.constructor = Popover
44
+
45
+ Popover.prototype.getDefaults = function () {
46
+ return Popover.DEFAULTS
47
+ }
48
+
49
+ Popover.prototype.setContent = function () {
50
+ var $tip = this.tip()
51
+ var title = this.getTitle()
52
+ var content = this.getContent()
53
+
54
+ $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
55
+ $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
56
+
57
+ $tip.removeClass('fade top bottom left right in')
58
+ }
59
+
60
+ Popover.prototype.hasContent = function () {
61
+ return this.getTitle() || this.getContent()
62
+ }
63
+
64
+ Popover.prototype.getContent = function () {
65
+ var content = typeof this.options.content == 'function' ?
66
+ this.options.content.call(this.$element[0]) :
67
+ this.options.content
68
+
69
+ return content || this.$element.attr('data-content')
70
+ }
71
+
72
+ Popover.prototype.tip = function () {
73
+ if (!this.$tip) this.$tip = $(this.options.template)
74
+ return this.$tip
75
+ }
76
+
77
+ Popover.prototype.destroy = function () {
78
+ this.hide().$element.off('.' + this.type).removeData(this.type)
79
+ }
80
+
81
+
82
+ // POPOVER PLUGIN DEFINITION
83
+ // =========================
84
+
85
+ var old = $.fn.popover
86
+
87
+ $.fn.popover = function (option) {
88
+ return this.each(function () {
89
+ var $this = $(this)
90
+ var data = $this.data('bs.popover')
91
+ var options = typeof option == 'object' && option
92
+
93
+ if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
94
+ if (typeof option == 'string') data[option]()
95
+ })
96
+ }
97
+
98
+ $.fn.popover.Constructor = Popover
99
+
100
+
101
+ // POPOVER NO CONFLICT
102
+ // ===================
103
+
104
+ $.fn.popover.noConflict = function () {
105
+ $.fn.popover = old
106
+ return this
107
+ }
108
+
109
+ }(window.jQuery);
@@ -0,0 +1,156 @@
1
+ /* ========================================================================
2
+ * Bootstrap: scrollspy.js v3.0.0
3
+ * http://twitter.github.com/bootstrap/javascript.html#scrollspy
4
+ * ========================================================================
5
+ * Copyright 2012 Twitter, Inc.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ * ======================================================================== */
19
+
20
+
21
+ +function ($) { "use strict";
22
+
23
+ // SCROLLSPY CLASS DEFINITION
24
+ // ==========================
25
+
26
+ function ScrollSpy(element, options) {
27
+ var href
28
+ var process = $.proxy(this.process, this)
29
+ var $element = $(element).is('body') ? $(window) : $(element)
30
+
31
+ this.$body = $('body')
32
+ this.$scrollElement = $element.on('scroll.bs.scroll-spy.data-api', process)
33
+ this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
34
+ this.selector = (this.options.target
35
+ || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
36
+ || '') + ' .nav li > a'
37
+ this.offsets = $([])
38
+ this.targets = $([])
39
+ this.activeTarget = null
40
+
41
+ this.refresh()
42
+ this.process()
43
+ }
44
+
45
+ ScrollSpy.DEFAULTS = {
46
+ offset: 10
47
+ }
48
+
49
+ ScrollSpy.prototype.refresh = function () {
50
+ this.offsets = $([])
51
+ this.targets = $([])
52
+
53
+ var self = this
54
+ var $targets = this.$body
55
+ .find(this.selector)
56
+ .map(function () {
57
+ var $el = $(this)
58
+ var href = $el.data('target') || $el.attr('href')
59
+ var $href = /^#\w/.test(href) && $(href)
60
+
61
+ return ($href
62
+ && $href.length
63
+ && [[ $href.position().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null
64
+ })
65
+ .sort(function (a, b) { return a[0] - b[0] })
66
+ .each(function () {
67
+ self.offsets.push(this[0])
68
+ self.targets.push(this[1])
69
+ })
70
+ }
71
+
72
+ ScrollSpy.prototype.process = function () {
73
+ var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
74
+ var scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
75
+ var maxScroll = scrollHeight - this.$scrollElement.height()
76
+ var offsets = this.offsets
77
+ var targets = this.targets
78
+ var activeTarget = this.activeTarget
79
+ var i
80
+
81
+ if (scrollTop >= maxScroll) {
82
+ return activeTarget != (i = targets.last()[0]) && this.activate(i)
83
+ }
84
+
85
+ for (i = offsets.length; i--;) {
86
+ activeTarget != targets[i]
87
+ && scrollTop >= offsets[i]
88
+ && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
89
+ && this.activate( targets[i] )
90
+ }
91
+ }
92
+
93
+ ScrollSpy.prototype.activate = function (target) {
94
+ this.activeTarget = target
95
+
96
+ $(this.selector)
97
+ .parents('.active')
98
+ .removeClass('active')
99
+
100
+ var selector = this.selector
101
+ + '[data-target="' + target + '"],'
102
+ + this.selector + '[href="' + target + '"]'
103
+
104
+ var active = $(selector)
105
+ .parents('li')
106
+ .addClass('active')
107
+
108
+ if (active.parent('.dropdown-menu').length) {
109
+ active = active
110
+ .closest('li.dropdown')
111
+ .addClass('active')
112
+ }
113
+
114
+ active.trigger('activate')
115
+ }
116
+
117
+
118
+ // SCROLLSPY PLUGIN DEFINITION
119
+ // ===========================
120
+
121
+ var old = $.fn.scrollspy
122
+
123
+ $.fn.scrollspy = function (option) {
124
+ return this.each(function () {
125
+ var $this = $(this)
126
+ var data = $this.data('bs.scrollspy')
127
+ var options = typeof option == 'object' && option
128
+
129
+ if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
130
+ if (typeof option == 'string') data[option]()
131
+ })
132
+ }
133
+
134
+ $.fn.scrollspy.Constructor = ScrollSpy
135
+
136
+
137
+ // SCROLLSPY NO CONFLICT
138
+ // =====================
139
+
140
+ $.fn.scrollspy.noConflict = function () {
141
+ $.fn.scrollspy = old
142
+ return this
143
+ }
144
+
145
+
146
+ // SCROLLSPY DATA-API
147
+ // ==================
148
+
149
+ $(window).on('load', function () {
150
+ $('[data-spy="scroll"]').each(function () {
151
+ var $spy = $(this)
152
+ $spy.scrollspy($spy.data())
153
+ })
154
+ })
155
+
156
+ }(window.jQuery);