annotate static/bootstrap/js/bootstrap.js @ 60:8250c977bc50

Moved static files to the root directory.
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 05 Feb 2013 14:49:34 -0800
parents wikked/static/bootstrap/js/bootstrap.js@6ac0b74a57f7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1 /* ===================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2 * bootstrap-transition.js v2.2.2
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3 * http://twitter.github.com/bootstrap/javascript.html#transitions
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
4 * ===================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
5 * Copyright 2012 Twitter, Inc.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
6 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
7 * Licensed under the Apache License, Version 2.0 (the "License");
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
8 * you may not use this file except in compliance with the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
9 * You may obtain a copy of the License at
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
10 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
11 * http://www.apache.org/licenses/LICENSE-2.0
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
12 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
13 * Unless required by applicable law or agreed to in writing, software
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
14 * distributed under the License is distributed on an "AS IS" BASIS,
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
16 * See the License for the specific language governing permissions and
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
17 * limitations under the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
18 * ========================================================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
19
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
20
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
21 !function ($) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
22
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
23 "use strict"; // jshint ;_;
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
24
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
25
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
26 /* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
27 * ======================================================= */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
28
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
29 $(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
30
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
31 $.support.transition = (function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
32
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
33 var transitionEnd = (function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
34
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
35 var el = document.createElement('bootstrap')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
36 , transEndEventNames = {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
37 'WebkitTransition' : 'webkitTransitionEnd'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
38 , 'MozTransition' : 'transitionend'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
39 , 'OTransition' : 'oTransitionEnd otransitionend'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
40 , 'transition' : 'transitionend'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
41 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
42 , name
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
43
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
44 for (name in transEndEventNames){
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
45 if (el.style[name] !== undefined) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
46 return transEndEventNames[name]
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
47 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
48 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
49
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
50 }())
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
51
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
52 return transitionEnd && {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
53 end: transitionEnd
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
54 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
55
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
56 })()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
57
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
58 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
59
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
60 }(window.jQuery);
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
61 /* =========================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
62 * bootstrap-modal.js v2.2.2
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
63 * http://twitter.github.com/bootstrap/javascript.html#modals
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
64 * =========================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
65 * Copyright 2012 Twitter, Inc.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
66 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
67 * Licensed under the Apache License, Version 2.0 (the "License");
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
68 * you may not use this file except in compliance with the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
69 * You may obtain a copy of the License at
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
70 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
71 * http://www.apache.org/licenses/LICENSE-2.0
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
72 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
73 * Unless required by applicable law or agreed to in writing, software
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
74 * distributed under the License is distributed on an "AS IS" BASIS,
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
75 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
76 * See the License for the specific language governing permissions and
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
77 * limitations under the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
78 * ========================================================= */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
79
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
80
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
81 !function ($) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
82
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
83 "use strict"; // jshint ;_;
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
84
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
85
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
86 /* MODAL CLASS DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
87 * ====================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
88
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
89 var Modal = function (element, options) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
90 this.options = options
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
91 this.$element = $(element)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
92 .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
93 this.options.remote && this.$element.find('.modal-body').load(this.options.remote)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
94 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
95
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
96 Modal.prototype = {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
97
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
98 constructor: Modal
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
99
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
100 , toggle: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
101 return this[!this.isShown ? 'show' : 'hide']()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
102 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
103
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
104 , show: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
105 var that = this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
106 , e = $.Event('show')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
107
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
108 this.$element.trigger(e)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
109
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
110 if (this.isShown || e.isDefaultPrevented()) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
111
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
112 this.isShown = true
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
113
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
114 this.escape()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
115
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
116 this.backdrop(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
117 var transition = $.support.transition && that.$element.hasClass('fade')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
118
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
119 if (!that.$element.parent().length) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
120 that.$element.appendTo(document.body) //don't move modals dom position
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
121 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
122
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
123 that.$element
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
124 .show()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
125
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
126 if (transition) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
127 that.$element[0].offsetWidth // force reflow
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
128 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
129
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
130 that.$element
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
131 .addClass('in')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
132 .attr('aria-hidden', false)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
133
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
134 that.enforceFocus()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
135
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
136 transition ?
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
137 that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) :
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
138 that.$element.focus().trigger('shown')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
139
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
140 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
141 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
142
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
143 , hide: function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
144 e && e.preventDefault()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
145
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
146 var that = this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
147
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
148 e = $.Event('hide')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
149
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
150 this.$element.trigger(e)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
151
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
152 if (!this.isShown || e.isDefaultPrevented()) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
153
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
154 this.isShown = false
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
155
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
156 this.escape()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
157
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
158 $(document).off('focusin.modal')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
159
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
160 this.$element
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
161 .removeClass('in')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
162 .attr('aria-hidden', true)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
163
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
164 $.support.transition && this.$element.hasClass('fade') ?
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
165 this.hideWithTransition() :
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
166 this.hideModal()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
167 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
168
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
169 , enforceFocus: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
170 var that = this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
171 $(document).on('focusin.modal', function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
172 if (that.$element[0] !== e.target && !that.$element.has(e.target).length) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
173 that.$element.focus()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
174 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
175 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
176 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
177
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
178 , escape: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
179 var that = this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
180 if (this.isShown && this.options.keyboard) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
181 this.$element.on('keyup.dismiss.modal', function ( e ) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
182 e.which == 27 && that.hide()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
183 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
184 } else if (!this.isShown) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
185 this.$element.off('keyup.dismiss.modal')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
186 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
187 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
188
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
189 , hideWithTransition: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
190 var that = this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
191 , timeout = setTimeout(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
192 that.$element.off($.support.transition.end)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
193 that.hideModal()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
194 }, 500)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
195
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
196 this.$element.one($.support.transition.end, function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
197 clearTimeout(timeout)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
198 that.hideModal()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
199 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
200 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
201
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
202 , hideModal: function (that) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
203 this.$element
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
204 .hide()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
205 .trigger('hidden')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
206
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
207 this.backdrop()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
208 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
209
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
210 , removeBackdrop: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
211 this.$backdrop.remove()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
212 this.$backdrop = null
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
213 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
214
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
215 , backdrop: function (callback) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
216 var that = this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
217 , animate = this.$element.hasClass('fade') ? 'fade' : ''
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
218
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
219 if (this.isShown && this.options.backdrop) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
220 var doAnimate = $.support.transition && animate
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
221
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
222 this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
223 .appendTo(document.body)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
224
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
225 this.$backdrop.click(
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
226 this.options.backdrop == 'static' ?
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
227 $.proxy(this.$element[0].focus, this.$element[0])
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
228 : $.proxy(this.hide, this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
229 )
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
230
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
231 if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
232
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
233 this.$backdrop.addClass('in')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
234
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
235 doAnimate ?
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
236 this.$backdrop.one($.support.transition.end, callback) :
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
237 callback()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
238
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
239 } else if (!this.isShown && this.$backdrop) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
240 this.$backdrop.removeClass('in')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
241
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
242 $.support.transition && this.$element.hasClass('fade')?
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
243 this.$backdrop.one($.support.transition.end, $.proxy(this.removeBackdrop, this)) :
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
244 this.removeBackdrop()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
245
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
246 } else if (callback) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
247 callback()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
248 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
249 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
250 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
251
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
252
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
253 /* MODAL PLUGIN DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
254 * ======================= */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
255
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
256 var old = $.fn.modal
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
257
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
258 $.fn.modal = function (option) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
259 return this.each(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
260 var $this = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
261 , data = $this.data('modal')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
262 , options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
263 if (!data) $this.data('modal', (data = new Modal(this, options)))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
264 if (typeof option == 'string') data[option]()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
265 else if (options.show) data.show()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
266 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
267 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
268
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
269 $.fn.modal.defaults = {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
270 backdrop: true
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
271 , keyboard: true
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
272 , show: true
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
273 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
274
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
275 $.fn.modal.Constructor = Modal
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
276
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
277
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
278 /* MODAL NO CONFLICT
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
279 * ================= */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
280
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
281 $.fn.modal.noConflict = function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
282 $.fn.modal = old
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
283 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
284 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
285
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
286
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
287 /* MODAL DATA-API
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
288 * ============== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
289
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
290 $(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
291 var $this = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
292 , href = $this.attr('href')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
293 , $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
294 , option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
295
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
296 e.preventDefault()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
297
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
298 $target
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
299 .modal(option)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
300 .one('hide', function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
301 $this.focus()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
302 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
303 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
304
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
305 }(window.jQuery);
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
306
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
307 /* ============================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
308 * bootstrap-dropdown.js v2.2.2
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
309 * http://twitter.github.com/bootstrap/javascript.html#dropdowns
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
310 * ============================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
311 * Copyright 2012 Twitter, Inc.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
312 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
313 * Licensed under the Apache License, Version 2.0 (the "License");
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
314 * you may not use this file except in compliance with the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
315 * You may obtain a copy of the License at
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
316 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
317 * http://www.apache.org/licenses/LICENSE-2.0
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
318 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
319 * Unless required by applicable law or agreed to in writing, software
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
320 * distributed under the License is distributed on an "AS IS" BASIS,
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
321 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
322 * See the License for the specific language governing permissions and
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
323 * limitations under the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
324 * ============================================================ */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
325
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
326
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
327 !function ($) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
328
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
329 "use strict"; // jshint ;_;
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
330
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
331
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
332 /* DROPDOWN CLASS DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
333 * ========================= */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
334
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
335 var toggle = '[data-toggle=dropdown]'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
336 , Dropdown = function (element) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
337 var $el = $(element).on('click.dropdown.data-api', this.toggle)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
338 $('html').on('click.dropdown.data-api', function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
339 $el.parent().removeClass('open')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
340 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
341 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
342
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
343 Dropdown.prototype = {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
344
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
345 constructor: Dropdown
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
346
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
347 , toggle: function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
348 var $this = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
349 , $parent
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
350 , isActive
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
351
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
352 if ($this.is('.disabled, :disabled')) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
353
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
354 $parent = getParent($this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
355
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
356 isActive = $parent.hasClass('open')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
357
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
358 clearMenus()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
359
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
360 if (!isActive) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
361 $parent.toggleClass('open')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
362 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
363
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
364 $this.focus()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
365
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
366 return false
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
367 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
368
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
369 , keydown: function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
370 var $this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
371 , $items
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
372 , $active
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
373 , $parent
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
374 , isActive
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
375 , index
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
376
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
377 if (!/(38|40|27)/.test(e.keyCode)) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
378
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
379 $this = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
380
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
381 e.preventDefault()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
382 e.stopPropagation()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
383
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
384 if ($this.is('.disabled, :disabled')) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
385
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
386 $parent = getParent($this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
387
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
388 isActive = $parent.hasClass('open')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
389
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
390 if (!isActive || (isActive && e.keyCode == 27)) return $this.click()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
391
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
392 $items = $('[role=menu] li:not(.divider):visible a', $parent)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
393
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
394 if (!$items.length) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
395
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
396 index = $items.index($items.filter(':focus'))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
397
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
398 if (e.keyCode == 38 && index > 0) index-- // up
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
399 if (e.keyCode == 40 && index < $items.length - 1) index++ // down
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
400 if (!~index) index = 0
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
401
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
402 $items
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
403 .eq(index)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
404 .focus()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
405 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
406
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
407 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
408
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
409 function clearMenus() {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
410 $(toggle).each(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
411 getParent($(this)).removeClass('open')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
412 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
413 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
414
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
415 function getParent($this) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
416 var selector = $this.attr('data-target')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
417 , $parent
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
418
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
419 if (!selector) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
420 selector = $this.attr('href')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
421 selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
422 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
423
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
424 $parent = $(selector)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
425 $parent.length || ($parent = $this.parent())
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
426
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
427 return $parent
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
428 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
429
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
430
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
431 /* DROPDOWN PLUGIN DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
432 * ========================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
433
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
434 var old = $.fn.dropdown
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
435
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
436 $.fn.dropdown = function (option) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
437 return this.each(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
438 var $this = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
439 , data = $this.data('dropdown')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
440 if (!data) $this.data('dropdown', (data = new Dropdown(this)))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
441 if (typeof option == 'string') data[option].call($this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
442 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
443 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
444
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
445 $.fn.dropdown.Constructor = Dropdown
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
446
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
447
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
448 /* DROPDOWN NO CONFLICT
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
449 * ==================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
450
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
451 $.fn.dropdown.noConflict = function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
452 $.fn.dropdown = old
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
453 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
454 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
455
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
456
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
457 /* APPLY TO STANDARD DROPDOWN ELEMENTS
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
458 * =================================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
459
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
460 $(document)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
461 .on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
462 .on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
463 .on('touchstart.dropdown.data-api', '.dropdown-menu', function (e) { e.stopPropagation() })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
464 .on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
465 .on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
466
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
467 }(window.jQuery);
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
468 /* =============================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
469 * bootstrap-scrollspy.js v2.2.2
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
470 * http://twitter.github.com/bootstrap/javascript.html#scrollspy
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
471 * =============================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
472 * Copyright 2012 Twitter, Inc.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
473 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
474 * Licensed under the Apache License, Version 2.0 (the "License");
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
475 * you may not use this file except in compliance with the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
476 * You may obtain a copy of the License at
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
477 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
478 * http://www.apache.org/licenses/LICENSE-2.0
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
479 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
480 * Unless required by applicable law or agreed to in writing, software
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
481 * distributed under the License is distributed on an "AS IS" BASIS,
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
482 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
483 * See the License for the specific language governing permissions and
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
484 * limitations under the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
485 * ============================================================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
486
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
487
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
488 !function ($) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
489
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
490 "use strict"; // jshint ;_;
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
491
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
492
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
493 /* SCROLLSPY CLASS DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
494 * ========================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
495
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
496 function ScrollSpy(element, options) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
497 var process = $.proxy(this.process, this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
498 , $element = $(element).is('body') ? $(window) : $(element)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
499 , href
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
500 this.options = $.extend({}, $.fn.scrollspy.defaults, options)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
501 this.$scrollElement = $element.on('scroll.scroll-spy.data-api', process)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
502 this.selector = (this.options.target
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
503 || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
504 || '') + ' .nav li > a'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
505 this.$body = $('body')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
506 this.refresh()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
507 this.process()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
508 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
509
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
510 ScrollSpy.prototype = {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
511
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
512 constructor: ScrollSpy
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
513
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
514 , refresh: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
515 var self = this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
516 , $targets
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
517
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
518 this.offsets = $([])
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
519 this.targets = $([])
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
520
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
521 $targets = this.$body
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
522 .find(this.selector)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
523 .map(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
524 var $el = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
525 , href = $el.data('target') || $el.attr('href')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
526 , $href = /^#\w/.test(href) && $(href)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
527 return ( $href
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
528 && $href.length
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
529 && [[ $href.position().top + self.$scrollElement.scrollTop(), href ]] ) || null
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
530 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
531 .sort(function (a, b) { return a[0] - b[0] })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
532 .each(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
533 self.offsets.push(this[0])
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
534 self.targets.push(this[1])
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
535 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
536 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
537
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
538 , process: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
539 var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
540 , scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
541 , maxScroll = scrollHeight - this.$scrollElement.height()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
542 , offsets = this.offsets
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
543 , targets = this.targets
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
544 , activeTarget = this.activeTarget
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
545 , i
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
546
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
547 if (scrollTop >= maxScroll) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
548 return activeTarget != (i = targets.last()[0])
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
549 && this.activate ( i )
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
550 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
551
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
552 for (i = offsets.length; i--;) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
553 activeTarget != targets[i]
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
554 && scrollTop >= offsets[i]
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
555 && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
556 && this.activate( targets[i] )
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
557 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
558 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
559
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
560 , activate: function (target) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
561 var active
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
562 , selector
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
563
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
564 this.activeTarget = target
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
565
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
566 $(this.selector)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
567 .parent('.active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
568 .removeClass('active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
569
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
570 selector = this.selector
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
571 + '[data-target="' + target + '"],'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
572 + this.selector + '[href="' + target + '"]'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
573
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
574 active = $(selector)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
575 .parent('li')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
576 .addClass('active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
577
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
578 if (active.parent('.dropdown-menu').length) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
579 active = active.closest('li.dropdown').addClass('active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
580 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
581
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
582 active.trigger('activate')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
583 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
584
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
585 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
586
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
587
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
588 /* SCROLLSPY PLUGIN DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
589 * =========================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
590
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
591 var old = $.fn.scrollspy
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
592
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
593 $.fn.scrollspy = function (option) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
594 return this.each(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
595 var $this = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
596 , data = $this.data('scrollspy')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
597 , options = typeof option == 'object' && option
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
598 if (!data) $this.data('scrollspy', (data = new ScrollSpy(this, options)))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
599 if (typeof option == 'string') data[option]()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
600 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
601 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
602
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
603 $.fn.scrollspy.Constructor = ScrollSpy
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
604
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
605 $.fn.scrollspy.defaults = {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
606 offset: 10
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
607 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
608
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
609
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
610 /* SCROLLSPY NO CONFLICT
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
611 * ===================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
612
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
613 $.fn.scrollspy.noConflict = function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
614 $.fn.scrollspy = old
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
615 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
616 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
617
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
618
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
619 /* SCROLLSPY DATA-API
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
620 * ================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
621
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
622 $(window).on('load', function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
623 $('[data-spy="scroll"]').each(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
624 var $spy = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
625 $spy.scrollspy($spy.data())
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
626 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
627 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
628
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
629 }(window.jQuery);
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
630 /* ========================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
631 * bootstrap-tab.js v2.2.2
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
632 * http://twitter.github.com/bootstrap/javascript.html#tabs
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
633 * ========================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
634 * Copyright 2012 Twitter, Inc.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
635 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
636 * Licensed under the Apache License, Version 2.0 (the "License");
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
637 * you may not use this file except in compliance with the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
638 * You may obtain a copy of the License at
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
639 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
640 * http://www.apache.org/licenses/LICENSE-2.0
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
641 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
642 * Unless required by applicable law or agreed to in writing, software
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
643 * distributed under the License is distributed on an "AS IS" BASIS,
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
644 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
645 * See the License for the specific language governing permissions and
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
646 * limitations under the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
647 * ======================================================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
648
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
649
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
650 !function ($) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
651
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
652 "use strict"; // jshint ;_;
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
653
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
654
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
655 /* TAB CLASS DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
656 * ==================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
657
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
658 var Tab = function (element) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
659 this.element = $(element)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
660 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
661
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
662 Tab.prototype = {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
663
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
664 constructor: Tab
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
665
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
666 , show: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
667 var $this = this.element
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
668 , $ul = $this.closest('ul:not(.dropdown-menu)')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
669 , selector = $this.attr('data-target')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
670 , previous
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
671 , $target
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
672 , e
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
673
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
674 if (!selector) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
675 selector = $this.attr('href')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
676 selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
677 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
678
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
679 if ( $this.parent('li').hasClass('active') ) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
680
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
681 previous = $ul.find('.active:last a')[0]
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
682
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
683 e = $.Event('show', {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
684 relatedTarget: previous
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
685 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
686
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
687 $this.trigger(e)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
688
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
689 if (e.isDefaultPrevented()) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
690
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
691 $target = $(selector)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
692
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
693 this.activate($this.parent('li'), $ul)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
694 this.activate($target, $target.parent(), function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
695 $this.trigger({
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
696 type: 'shown'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
697 , relatedTarget: previous
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
698 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
699 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
700 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
701
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
702 , activate: function ( element, container, callback) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
703 var $active = container.find('> .active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
704 , transition = callback
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
705 && $.support.transition
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
706 && $active.hasClass('fade')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
707
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
708 function next() {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
709 $active
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
710 .removeClass('active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
711 .find('> .dropdown-menu > .active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
712 .removeClass('active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
713
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
714 element.addClass('active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
715
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
716 if (transition) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
717 element[0].offsetWidth // reflow for transition
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
718 element.addClass('in')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
719 } else {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
720 element.removeClass('fade')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
721 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
722
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
723 if ( element.parent('.dropdown-menu') ) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
724 element.closest('li.dropdown').addClass('active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
725 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
726
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
727 callback && callback()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
728 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
729
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
730 transition ?
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
731 $active.one($.support.transition.end, next) :
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
732 next()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
733
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
734 $active.removeClass('in')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
735 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
736 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
737
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
738
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
739 /* TAB PLUGIN DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
740 * ===================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
741
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
742 var old = $.fn.tab
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
743
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
744 $.fn.tab = function ( option ) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
745 return this.each(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
746 var $this = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
747 , data = $this.data('tab')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
748 if (!data) $this.data('tab', (data = new Tab(this)))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
749 if (typeof option == 'string') data[option]()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
750 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
751 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
752
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
753 $.fn.tab.Constructor = Tab
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
754
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
755
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
756 /* TAB NO CONFLICT
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
757 * =============== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
758
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
759 $.fn.tab.noConflict = function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
760 $.fn.tab = old
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
761 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
762 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
763
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
764
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
765 /* TAB DATA-API
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
766 * ============ */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
767
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
768 $(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
769 e.preventDefault()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
770 $(this).tab('show')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
771 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
772
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
773 }(window.jQuery);
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
774 /* ===========================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
775 * bootstrap-tooltip.js v2.2.2
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
776 * http://twitter.github.com/bootstrap/javascript.html#tooltips
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
777 * Inspired by the original jQuery.tipsy by Jason Frame
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
778 * ===========================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
779 * Copyright 2012 Twitter, Inc.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
780 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
781 * Licensed under the Apache License, Version 2.0 (the "License");
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
782 * you may not use this file except in compliance with the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
783 * You may obtain a copy of the License at
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
784 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
785 * http://www.apache.org/licenses/LICENSE-2.0
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
786 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
787 * Unless required by applicable law or agreed to in writing, software
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
788 * distributed under the License is distributed on an "AS IS" BASIS,
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
789 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
790 * See the License for the specific language governing permissions and
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
791 * limitations under the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
792 * ========================================================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
793
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
794
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
795 !function ($) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
796
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
797 "use strict"; // jshint ;_;
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
798
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
799
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
800 /* TOOLTIP PUBLIC CLASS DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
801 * =============================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
802
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
803 var Tooltip = function (element, options) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
804 this.init('tooltip', element, options)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
805 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
806
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
807 Tooltip.prototype = {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
808
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
809 constructor: Tooltip
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
810
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
811 , init: function (type, element, options) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
812 var eventIn
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
813 , eventOut
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
814
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
815 this.type = type
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
816 this.$element = $(element)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
817 this.options = this.getOptions(options)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
818 this.enabled = true
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
819
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
820 if (this.options.trigger == 'click') {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
821 this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
822 } else if (this.options.trigger != 'manual') {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
823 eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
824 eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
825 this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
826 this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
827 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
828
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
829 this.options.selector ?
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
830 (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
831 this.fixTitle()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
832 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
833
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
834 , getOptions: function (options) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
835 options = $.extend({}, $.fn[this.type].defaults, options, this.$element.data())
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
836
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
837 if (options.delay && typeof options.delay == 'number') {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
838 options.delay = {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
839 show: options.delay
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
840 , hide: options.delay
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
841 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
842 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
843
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
844 return options
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
845 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
846
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
847 , enter: function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
848 var self = $(e.currentTarget)[this.type](this._options).data(this.type)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
849
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
850 if (!self.options.delay || !self.options.delay.show) return self.show()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
851
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
852 clearTimeout(this.timeout)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
853 self.hoverState = 'in'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
854 this.timeout = setTimeout(function() {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
855 if (self.hoverState == 'in') self.show()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
856 }, self.options.delay.show)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
857 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
858
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
859 , leave: function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
860 var self = $(e.currentTarget)[this.type](this._options).data(this.type)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
861
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
862 if (this.timeout) clearTimeout(this.timeout)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
863 if (!self.options.delay || !self.options.delay.hide) return self.hide()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
864
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
865 self.hoverState = 'out'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
866 this.timeout = setTimeout(function() {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
867 if (self.hoverState == 'out') self.hide()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
868 }, self.options.delay.hide)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
869 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
870
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
871 , show: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
872 var $tip
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
873 , inside
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
874 , pos
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
875 , actualWidth
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
876 , actualHeight
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
877 , placement
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
878 , tp
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
879
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
880 if (this.hasContent() && this.enabled) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
881 $tip = this.tip()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
882 this.setContent()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
883
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
884 if (this.options.animation) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
885 $tip.addClass('fade')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
886 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
887
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
888 placement = typeof this.options.placement == 'function' ?
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
889 this.options.placement.call(this, $tip[0], this.$element[0]) :
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
890 this.options.placement
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
891
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
892 inside = /in/.test(placement)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
893
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
894 $tip
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
895 .detach()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
896 .css({ top: 0, left: 0, display: 'block' })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
897 .insertAfter(this.$element)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
898
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
899 pos = this.getPosition(inside)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
900
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
901 actualWidth = $tip[0].offsetWidth
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
902 actualHeight = $tip[0].offsetHeight
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
903
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
904 switch (inside ? placement.split(' ')[1] : placement) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
905 case 'bottom':
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
906 tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
907 break
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
908 case 'top':
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
909 tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
910 break
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
911 case 'left':
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
912 tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
913 break
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
914 case 'right':
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
915 tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
916 break
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
917 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
918
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
919 $tip
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
920 .offset(tp)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
921 .addClass(placement)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
922 .addClass('in')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
923 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
924 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
925
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
926 , setContent: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
927 var $tip = this.tip()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
928 , title = this.getTitle()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
929
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
930 $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
931 $tip.removeClass('fade in top bottom left right')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
932 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
933
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
934 , hide: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
935 var that = this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
936 , $tip = this.tip()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
937
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
938 $tip.removeClass('in')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
939
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
940 function removeWithAnimation() {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
941 var timeout = setTimeout(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
942 $tip.off($.support.transition.end).detach()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
943 }, 500)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
944
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
945 $tip.one($.support.transition.end, function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
946 clearTimeout(timeout)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
947 $tip.detach()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
948 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
949 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
950
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
951 $.support.transition && this.$tip.hasClass('fade') ?
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
952 removeWithAnimation() :
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
953 $tip.detach()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
954
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
955 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
956 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
957
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
958 , fixTitle: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
959 var $e = this.$element
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
960 if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
961 $e.attr('data-original-title', $e.attr('title') || '').removeAttr('title')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
962 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
963 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
964
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
965 , hasContent: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
966 return this.getTitle()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
967 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
968
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
969 , getPosition: function (inside) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
970 return $.extend({}, (inside ? {top: 0, left: 0} : this.$element.offset()), {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
971 width: this.$element[0].offsetWidth
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
972 , height: this.$element[0].offsetHeight
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
973 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
974 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
975
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
976 , getTitle: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
977 var title
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
978 , $e = this.$element
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
979 , o = this.options
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
980
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
981 title = $e.attr('data-original-title')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
982 || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
983
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
984 return title
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
985 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
986
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
987 , tip: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
988 return this.$tip = this.$tip || $(this.options.template)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
989 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
990
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
991 , validate: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
992 if (!this.$element[0].parentNode) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
993 this.hide()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
994 this.$element = null
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
995 this.options = null
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
996 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
997 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
998
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
999 , enable: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1000 this.enabled = true
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1001 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1002
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1003 , disable: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1004 this.enabled = false
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1005 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1006
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1007 , toggleEnabled: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1008 this.enabled = !this.enabled
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1009 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1010
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1011 , toggle: function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1012 var self = $(e.currentTarget)[this.type](this._options).data(this.type)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1013 self[self.tip().hasClass('in') ? 'hide' : 'show']()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1014 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1015
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1016 , destroy: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1017 this.hide().$element.off('.' + this.type).removeData(this.type)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1018 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1019
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1020 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1021
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1022
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1023 /* TOOLTIP PLUGIN DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1024 * ========================= */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1025
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1026 var old = $.fn.tooltip
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1027
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1028 $.fn.tooltip = function ( option ) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1029 return this.each(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1030 var $this = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1031 , data = $this.data('tooltip')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1032 , options = typeof option == 'object' && option
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1033 if (!data) $this.data('tooltip', (data = new Tooltip(this, options)))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1034 if (typeof option == 'string') data[option]()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1035 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1036 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1037
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1038 $.fn.tooltip.Constructor = Tooltip
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1039
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1040 $.fn.tooltip.defaults = {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1041 animation: true
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1042 , placement: 'top'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1043 , selector: false
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1044 , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1045 , trigger: 'hover'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1046 , title: ''
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1047 , delay: 0
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1048 , html: false
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1049 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1050
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1051
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1052 /* TOOLTIP NO CONFLICT
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1053 * =================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1054
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1055 $.fn.tooltip.noConflict = function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1056 $.fn.tooltip = old
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1057 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1058 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1059
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1060 }(window.jQuery);
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1061 /* ===========================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1062 * bootstrap-popover.js v2.2.2
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1063 * http://twitter.github.com/bootstrap/javascript.html#popovers
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1064 * ===========================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1065 * Copyright 2012 Twitter, Inc.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1066 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1067 * Licensed under the Apache License, Version 2.0 (the "License");
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1068 * you may not use this file except in compliance with the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1069 * You may obtain a copy of the License at
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1070 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1071 * http://www.apache.org/licenses/LICENSE-2.0
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1072 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1073 * Unless required by applicable law or agreed to in writing, software
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1074 * distributed under the License is distributed on an "AS IS" BASIS,
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1075 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1076 * See the License for the specific language governing permissions and
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1077 * limitations under the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1078 * =========================================================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1079
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1080
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1081 !function ($) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1082
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1083 "use strict"; // jshint ;_;
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1084
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1085
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1086 /* POPOVER PUBLIC CLASS DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1087 * =============================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1088
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1089 var Popover = function (element, options) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1090 this.init('popover', element, options)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1091 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1092
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1093
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1094 /* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1095 ========================================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1096
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1097 Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1098
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1099 constructor: Popover
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1100
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1101 , setContent: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1102 var $tip = this.tip()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1103 , title = this.getTitle()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1104 , content = this.getContent()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1105
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1106 $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1107 $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1108
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1109 $tip.removeClass('fade top bottom left right in')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1110 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1111
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1112 , hasContent: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1113 return this.getTitle() || this.getContent()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1114 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1115
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1116 , getContent: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1117 var content
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1118 , $e = this.$element
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1119 , o = this.options
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1120
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1121 content = $e.attr('data-content')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1122 || (typeof o.content == 'function' ? o.content.call($e[0]) : o.content)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1123
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1124 return content
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1125 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1126
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1127 , tip: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1128 if (!this.$tip) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1129 this.$tip = $(this.options.template)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1130 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1131 return this.$tip
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1132 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1133
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1134 , destroy: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1135 this.hide().$element.off('.' + this.type).removeData(this.type)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1136 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1137
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1138 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1139
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1140
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1141 /* POPOVER PLUGIN DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1142 * ======================= */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1143
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1144 var old = $.fn.popover
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1145
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1146 $.fn.popover = function (option) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1147 return this.each(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1148 var $this = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1149 , data = $this.data('popover')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1150 , options = typeof option == 'object' && option
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1151 if (!data) $this.data('popover', (data = new Popover(this, options)))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1152 if (typeof option == 'string') data[option]()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1153 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1154 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1155
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1156 $.fn.popover.Constructor = Popover
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1157
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1158 $.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1159 placement: 'right'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1160 , trigger: 'click'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1161 , content: ''
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1162 , template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"></div></div></div>'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1163 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1164
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1165
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1166 /* POPOVER NO CONFLICT
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1167 * =================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1168
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1169 $.fn.popover.noConflict = function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1170 $.fn.popover = old
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1171 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1172 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1173
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1174 }(window.jQuery);
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1175 /* ==========================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1176 * bootstrap-affix.js v2.2.2
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1177 * http://twitter.github.com/bootstrap/javascript.html#affix
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1178 * ==========================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1179 * Copyright 2012 Twitter, Inc.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1180 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1181 * Licensed under the Apache License, Version 2.0 (the "License");
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1182 * you may not use this file except in compliance with the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1183 * You may obtain a copy of the License at
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1184 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1185 * http://www.apache.org/licenses/LICENSE-2.0
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1186 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1187 * Unless required by applicable law or agreed to in writing, software
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1188 * distributed under the License is distributed on an "AS IS" BASIS,
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1189 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1190 * See the License for the specific language governing permissions and
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1191 * limitations under the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1192 * ========================================================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1193
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1194
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1195 !function ($) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1196
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1197 "use strict"; // jshint ;_;
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1198
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1199
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1200 /* AFFIX CLASS DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1201 * ====================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1202
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1203 var Affix = function (element, options) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1204 this.options = $.extend({}, $.fn.affix.defaults, options)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1205 this.$window = $(window)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1206 .on('scroll.affix.data-api', $.proxy(this.checkPosition, this))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1207 .on('click.affix.data-api', $.proxy(function () { setTimeout($.proxy(this.checkPosition, this), 1) }, this))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1208 this.$element = $(element)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1209 this.checkPosition()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1210 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1211
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1212 Affix.prototype.checkPosition = function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1213 if (!this.$element.is(':visible')) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1214
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1215 var scrollHeight = $(document).height()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1216 , scrollTop = this.$window.scrollTop()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1217 , position = this.$element.offset()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1218 , offset = this.options.offset
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1219 , offsetBottom = offset.bottom
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1220 , offsetTop = offset.top
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1221 , reset = 'affix affix-top affix-bottom'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1222 , affix
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1223
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1224 if (typeof offset != 'object') offsetBottom = offsetTop = offset
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1225 if (typeof offsetTop == 'function') offsetTop = offset.top()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1226 if (typeof offsetBottom == 'function') offsetBottom = offset.bottom()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1227
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1228 affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ?
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1229 false : offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ?
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1230 'bottom' : offsetTop != null && scrollTop <= offsetTop ?
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1231 'top' : false
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1232
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1233 if (this.affixed === affix) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1234
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1235 this.affixed = affix
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1236 this.unpin = affix == 'bottom' ? position.top - scrollTop : null
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1237
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1238 this.$element.removeClass(reset).addClass('affix' + (affix ? '-' + affix : ''))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1239 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1240
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1241
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1242 /* AFFIX PLUGIN DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1243 * ======================= */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1244
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1245 var old = $.fn.affix
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1246
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1247 $.fn.affix = function (option) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1248 return this.each(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1249 var $this = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1250 , data = $this.data('affix')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1251 , options = typeof option == 'object' && option
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1252 if (!data) $this.data('affix', (data = new Affix(this, options)))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1253 if (typeof option == 'string') data[option]()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1254 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1255 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1256
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1257 $.fn.affix.Constructor = Affix
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1258
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1259 $.fn.affix.defaults = {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1260 offset: 0
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1261 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1262
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1263
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1264 /* AFFIX NO CONFLICT
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1265 * ================= */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1266
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1267 $.fn.affix.noConflict = function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1268 $.fn.affix = old
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1269 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1270 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1271
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1272
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1273 /* AFFIX DATA-API
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1274 * ============== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1275
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1276 $(window).on('load', function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1277 $('[data-spy="affix"]').each(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1278 var $spy = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1279 , data = $spy.data()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1280
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1281 data.offset = data.offset || {}
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1282
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1283 data.offsetBottom && (data.offset.bottom = data.offsetBottom)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1284 data.offsetTop && (data.offset.top = data.offsetTop)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1285
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1286 $spy.affix(data)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1287 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1288 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1289
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1290
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1291 }(window.jQuery);
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1292 /* ==========================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1293 * bootstrap-alert.js v2.2.2
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1294 * http://twitter.github.com/bootstrap/javascript.html#alerts
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1295 * ==========================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1296 * Copyright 2012 Twitter, Inc.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1297 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1298 * Licensed under the Apache License, Version 2.0 (the "License");
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1299 * you may not use this file except in compliance with the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1300 * You may obtain a copy of the License at
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1301 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1302 * http://www.apache.org/licenses/LICENSE-2.0
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1303 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1304 * Unless required by applicable law or agreed to in writing, software
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1305 * distributed under the License is distributed on an "AS IS" BASIS,
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1306 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1307 * See the License for the specific language governing permissions and
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1308 * limitations under the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1309 * ========================================================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1310
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1311
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1312 !function ($) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1313
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1314 "use strict"; // jshint ;_;
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1315
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1316
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1317 /* ALERT CLASS DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1318 * ====================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1319
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1320 var dismiss = '[data-dismiss="alert"]'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1321 , Alert = function (el) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1322 $(el).on('click', dismiss, this.close)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1323 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1324
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1325 Alert.prototype.close = function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1326 var $this = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1327 , selector = $this.attr('data-target')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1328 , $parent
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1329
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1330 if (!selector) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1331 selector = $this.attr('href')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1332 selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1333 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1334
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1335 $parent = $(selector)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1336
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1337 e && e.preventDefault()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1338
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1339 $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1340
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1341 $parent.trigger(e = $.Event('close'))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1342
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1343 if (e.isDefaultPrevented()) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1344
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1345 $parent.removeClass('in')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1346
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1347 function removeElement() {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1348 $parent
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1349 .trigger('closed')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1350 .remove()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1351 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1352
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1353 $.support.transition && $parent.hasClass('fade') ?
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1354 $parent.on($.support.transition.end, removeElement) :
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1355 removeElement()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1356 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1357
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1358
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1359 /* ALERT PLUGIN DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1360 * ======================= */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1361
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1362 var old = $.fn.alert
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1363
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1364 $.fn.alert = function (option) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1365 return this.each(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1366 var $this = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1367 , data = $this.data('alert')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1368 if (!data) $this.data('alert', (data = new Alert(this)))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1369 if (typeof option == 'string') data[option].call($this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1370 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1371 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1372
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1373 $.fn.alert.Constructor = Alert
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1374
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1375
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1376 /* ALERT NO CONFLICT
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1377 * ================= */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1378
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1379 $.fn.alert.noConflict = function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1380 $.fn.alert = old
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1381 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1382 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1383
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1384
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1385 /* ALERT DATA-API
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1386 * ============== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1387
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1388 $(document).on('click.alert.data-api', dismiss, Alert.prototype.close)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1389
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1390 }(window.jQuery);
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1391 /* ============================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1392 * bootstrap-button.js v2.2.2
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1393 * http://twitter.github.com/bootstrap/javascript.html#buttons
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1394 * ============================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1395 * Copyright 2012 Twitter, Inc.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1396 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1397 * Licensed under the Apache License, Version 2.0 (the "License");
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1398 * you may not use this file except in compliance with the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1399 * You may obtain a copy of the License at
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1400 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1401 * http://www.apache.org/licenses/LICENSE-2.0
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1402 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1403 * Unless required by applicable law or agreed to in writing, software
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1404 * distributed under the License is distributed on an "AS IS" BASIS,
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1405 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1406 * See the License for the specific language governing permissions and
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1407 * limitations under the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1408 * ============================================================ */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1409
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1410
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1411 !function ($) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1412
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1413 "use strict"; // jshint ;_;
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1414
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1415
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1416 /* BUTTON PUBLIC CLASS DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1417 * ============================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1418
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1419 var Button = function (element, options) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1420 this.$element = $(element)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1421 this.options = $.extend({}, $.fn.button.defaults, options)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1422 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1423
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1424 Button.prototype.setState = function (state) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1425 var d = 'disabled'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1426 , $el = this.$element
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1427 , data = $el.data()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1428 , val = $el.is('input') ? 'val' : 'html'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1429
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1430 state = state + 'Text'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1431 data.resetText || $el.data('resetText', $el[val]())
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1432
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1433 $el[val](data[state] || this.options[state])
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1434
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1435 // push to event loop to allow forms to submit
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1436 setTimeout(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1437 state == 'loadingText' ?
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1438 $el.addClass(d).attr(d, d) :
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1439 $el.removeClass(d).removeAttr(d)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1440 }, 0)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1441 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1442
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1443 Button.prototype.toggle = function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1444 var $parent = this.$element.closest('[data-toggle="buttons-radio"]')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1445
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1446 $parent && $parent
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1447 .find('.active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1448 .removeClass('active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1449
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1450 this.$element.toggleClass('active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1451 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1452
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1453
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1454 /* BUTTON PLUGIN DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1455 * ======================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1456
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1457 var old = $.fn.button
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1458
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1459 $.fn.button = function (option) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1460 return this.each(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1461 var $this = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1462 , data = $this.data('button')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1463 , options = typeof option == 'object' && option
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1464 if (!data) $this.data('button', (data = new Button(this, options)))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1465 if (option == 'toggle') data.toggle()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1466 else if (option) data.setState(option)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1467 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1468 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1469
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1470 $.fn.button.defaults = {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1471 loadingText: 'loading...'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1472 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1473
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1474 $.fn.button.Constructor = Button
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1475
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1476
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1477 /* BUTTON NO CONFLICT
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1478 * ================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1479
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1480 $.fn.button.noConflict = function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1481 $.fn.button = old
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1482 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1483 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1484
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1485
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1486 /* BUTTON DATA-API
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1487 * =============== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1488
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1489 $(document).on('click.button.data-api', '[data-toggle^=button]', function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1490 var $btn = $(e.target)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1491 if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1492 $btn.button('toggle')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1493 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1494
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1495 }(window.jQuery);
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1496 /* =============================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1497 * bootstrap-collapse.js v2.2.2
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1498 * http://twitter.github.com/bootstrap/javascript.html#collapse
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1499 * =============================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1500 * Copyright 2012 Twitter, Inc.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1501 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1502 * Licensed under the Apache License, Version 2.0 (the "License");
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1503 * you may not use this file except in compliance with the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1504 * You may obtain a copy of the License at
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1505 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1506 * http://www.apache.org/licenses/LICENSE-2.0
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1507 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1508 * Unless required by applicable law or agreed to in writing, software
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1509 * distributed under the License is distributed on an "AS IS" BASIS,
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1510 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1511 * See the License for the specific language governing permissions and
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1512 * limitations under the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1513 * ============================================================ */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1514
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1515
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1516 !function ($) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1517
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1518 "use strict"; // jshint ;_;
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1519
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1520
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1521 /* COLLAPSE PUBLIC CLASS DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1522 * ================================ */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1523
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1524 var Collapse = function (element, options) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1525 this.$element = $(element)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1526 this.options = $.extend({}, $.fn.collapse.defaults, options)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1527
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1528 if (this.options.parent) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1529 this.$parent = $(this.options.parent)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1530 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1531
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1532 this.options.toggle && this.toggle()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1533 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1534
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1535 Collapse.prototype = {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1536
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1537 constructor: Collapse
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1538
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1539 , dimension: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1540 var hasWidth = this.$element.hasClass('width')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1541 return hasWidth ? 'width' : 'height'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1542 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1543
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1544 , show: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1545 var dimension
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1546 , scroll
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1547 , actives
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1548 , hasData
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1549
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1550 if (this.transitioning) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1551
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1552 dimension = this.dimension()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1553 scroll = $.camelCase(['scroll', dimension].join('-'))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1554 actives = this.$parent && this.$parent.find('> .accordion-group > .in')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1555
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1556 if (actives && actives.length) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1557 hasData = actives.data('collapse')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1558 if (hasData && hasData.transitioning) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1559 actives.collapse('hide')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1560 hasData || actives.data('collapse', null)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1561 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1562
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1563 this.$element[dimension](0)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1564 this.transition('addClass', $.Event('show'), 'shown')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1565 $.support.transition && this.$element[dimension](this.$element[0][scroll])
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1566 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1567
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1568 , hide: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1569 var dimension
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1570 if (this.transitioning) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1571 dimension = this.dimension()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1572 this.reset(this.$element[dimension]())
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1573 this.transition('removeClass', $.Event('hide'), 'hidden')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1574 this.$element[dimension](0)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1575 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1576
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1577 , reset: function (size) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1578 var dimension = this.dimension()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1579
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1580 this.$element
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1581 .removeClass('collapse')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1582 [dimension](size || 'auto')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1583 [0].offsetWidth
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1584
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1585 this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1586
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1587 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1588 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1589
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1590 , transition: function (method, startEvent, completeEvent) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1591 var that = this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1592 , complete = function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1593 if (startEvent.type == 'show') that.reset()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1594 that.transitioning = 0
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1595 that.$element.trigger(completeEvent)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1596 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1597
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1598 this.$element.trigger(startEvent)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1599
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1600 if (startEvent.isDefaultPrevented()) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1601
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1602 this.transitioning = 1
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1603
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1604 this.$element[method]('in')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1605
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1606 $.support.transition && this.$element.hasClass('collapse') ?
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1607 this.$element.one($.support.transition.end, complete) :
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1608 complete()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1609 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1610
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1611 , toggle: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1612 this[this.$element.hasClass('in') ? 'hide' : 'show']()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1613 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1614
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1615 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1616
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1617
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1618 /* COLLAPSE PLUGIN DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1619 * ========================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1620
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1621 var old = $.fn.collapse
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1622
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1623 $.fn.collapse = function (option) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1624 return this.each(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1625 var $this = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1626 , data = $this.data('collapse')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1627 , options = typeof option == 'object' && option
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1628 if (!data) $this.data('collapse', (data = new Collapse(this, options)))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1629 if (typeof option == 'string') data[option]()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1630 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1631 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1632
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1633 $.fn.collapse.defaults = {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1634 toggle: true
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1635 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1636
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1637 $.fn.collapse.Constructor = Collapse
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1638
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1639
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1640 /* COLLAPSE NO CONFLICT
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1641 * ==================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1642
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1643 $.fn.collapse.noConflict = function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1644 $.fn.collapse = old
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1645 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1646 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1647
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1648
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1649 /* COLLAPSE DATA-API
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1650 * ================= */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1651
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1652 $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1653 var $this = $(this), href
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1654 , target = $this.attr('data-target')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1655 || e.preventDefault()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1656 || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1657 , option = $(target).data('collapse') ? 'toggle' : $this.data()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1658 $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1659 $(target).collapse(option)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1660 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1661
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1662 }(window.jQuery);
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1663 /* ==========================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1664 * bootstrap-carousel.js v2.2.2
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1665 * http://twitter.github.com/bootstrap/javascript.html#carousel
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1666 * ==========================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1667 * Copyright 2012 Twitter, Inc.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1668 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1669 * Licensed under the Apache License, Version 2.0 (the "License");
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1670 * you may not use this file except in compliance with the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1671 * You may obtain a copy of the License at
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1672 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1673 * http://www.apache.org/licenses/LICENSE-2.0
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1674 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1675 * Unless required by applicable law or agreed to in writing, software
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1676 * distributed under the License is distributed on an "AS IS" BASIS,
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1677 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1678 * See the License for the specific language governing permissions and
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1679 * limitations under the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1680 * ========================================================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1681
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1682
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1683 !function ($) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1684
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1685 "use strict"; // jshint ;_;
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1686
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1687
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1688 /* CAROUSEL CLASS DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1689 * ========================= */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1690
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1691 var Carousel = function (element, options) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1692 this.$element = $(element)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1693 this.options = options
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1694 this.options.pause == 'hover' && this.$element
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1695 .on('mouseenter', $.proxy(this.pause, this))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1696 .on('mouseleave', $.proxy(this.cycle, this))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1697 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1698
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1699 Carousel.prototype = {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1700
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1701 cycle: function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1702 if (!e) this.paused = false
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1703 this.options.interval
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1704 && !this.paused
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1705 && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1706 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1707 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1708
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1709 , to: function (pos) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1710 var $active = this.$element.find('.item.active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1711 , children = $active.parent().children()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1712 , activePos = children.index($active)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1713 , that = this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1714
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1715 if (pos > (children.length - 1) || pos < 0) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1716
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1717 if (this.sliding) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1718 return this.$element.one('slid', function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1719 that.to(pos)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1720 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1721 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1722
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1723 if (activePos == pos) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1724 return this.pause().cycle()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1725 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1726
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1727 return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos]))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1728 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1729
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1730 , pause: function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1731 if (!e) this.paused = true
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1732 if (this.$element.find('.next, .prev').length && $.support.transition.end) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1733 this.$element.trigger($.support.transition.end)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1734 this.cycle()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1735 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1736 clearInterval(this.interval)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1737 this.interval = null
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1738 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1739 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1740
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1741 , next: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1742 if (this.sliding) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1743 return this.slide('next')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1744 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1745
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1746 , prev: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1747 if (this.sliding) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1748 return this.slide('prev')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1749 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1750
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1751 , slide: function (type, next) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1752 var $active = this.$element.find('.item.active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1753 , $next = next || $active[type]()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1754 , isCycling = this.interval
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1755 , direction = type == 'next' ? 'left' : 'right'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1756 , fallback = type == 'next' ? 'first' : 'last'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1757 , that = this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1758 , e
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1759
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1760 this.sliding = true
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1761
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1762 isCycling && this.pause()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1763
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1764 $next = $next.length ? $next : this.$element.find('.item')[fallback]()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1765
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1766 e = $.Event('slide', {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1767 relatedTarget: $next[0]
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1768 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1769
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1770 if ($next.hasClass('active')) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1771
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1772 if ($.support.transition && this.$element.hasClass('slide')) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1773 this.$element.trigger(e)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1774 if (e.isDefaultPrevented()) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1775 $next.addClass(type)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1776 $next[0].offsetWidth // force reflow
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1777 $active.addClass(direction)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1778 $next.addClass(direction)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1779 this.$element.one($.support.transition.end, function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1780 $next.removeClass([type, direction].join(' ')).addClass('active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1781 $active.removeClass(['active', direction].join(' '))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1782 that.sliding = false
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1783 setTimeout(function () { that.$element.trigger('slid') }, 0)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1784 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1785 } else {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1786 this.$element.trigger(e)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1787 if (e.isDefaultPrevented()) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1788 $active.removeClass('active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1789 $next.addClass('active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1790 this.sliding = false
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1791 this.$element.trigger('slid')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1792 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1793
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1794 isCycling && this.cycle()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1795
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1796 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1797 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1798
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1799 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1800
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1801
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1802 /* CAROUSEL PLUGIN DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1803 * ========================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1804
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1805 var old = $.fn.carousel
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1806
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1807 $.fn.carousel = function (option) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1808 return this.each(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1809 var $this = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1810 , data = $this.data('carousel')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1811 , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1812 , action = typeof option == 'string' ? option : options.slide
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1813 if (!data) $this.data('carousel', (data = new Carousel(this, options)))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1814 if (typeof option == 'number') data.to(option)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1815 else if (action) data[action]()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1816 else if (options.interval) data.cycle()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1817 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1818 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1819
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1820 $.fn.carousel.defaults = {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1821 interval: 5000
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1822 , pause: 'hover'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1823 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1824
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1825 $.fn.carousel.Constructor = Carousel
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1826
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1827
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1828 /* CAROUSEL NO CONFLICT
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1829 * ==================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1830
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1831 $.fn.carousel.noConflict = function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1832 $.fn.carousel = old
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1833 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1834 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1835
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1836 /* CAROUSEL DATA-API
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1837 * ================= */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1838
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1839 $(document).on('click.carousel.data-api', '[data-slide]', function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1840 var $this = $(this), href
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1841 , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1842 , options = $.extend({}, $target.data(), $this.data())
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1843 $target.carousel(options)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1844 e.preventDefault()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1845 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1846
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1847 }(window.jQuery);
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1848 /* =============================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1849 * bootstrap-typeahead.js v2.2.2
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1850 * http://twitter.github.com/bootstrap/javascript.html#typeahead
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1851 * =============================================================
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1852 * Copyright 2012 Twitter, Inc.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1853 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1854 * Licensed under the Apache License, Version 2.0 (the "License");
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1855 * you may not use this file except in compliance with the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1856 * You may obtain a copy of the License at
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1857 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1858 * http://www.apache.org/licenses/LICENSE-2.0
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1859 *
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1860 * Unless required by applicable law or agreed to in writing, software
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1861 * distributed under the License is distributed on an "AS IS" BASIS,
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1862 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1863 * See the License for the specific language governing permissions and
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1864 * limitations under the License.
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1865 * ============================================================ */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1866
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1867
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1868 !function($){
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1869
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1870 "use strict"; // jshint ;_;
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1871
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1872
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1873 /* TYPEAHEAD PUBLIC CLASS DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1874 * ================================= */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1875
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1876 var Typeahead = function (element, options) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1877 this.$element = $(element)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1878 this.options = $.extend({}, $.fn.typeahead.defaults, options)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1879 this.matcher = this.options.matcher || this.matcher
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1880 this.sorter = this.options.sorter || this.sorter
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1881 this.highlighter = this.options.highlighter || this.highlighter
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1882 this.updater = this.options.updater || this.updater
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1883 this.source = this.options.source
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1884 this.$menu = $(this.options.menu)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1885 this.shown = false
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1886 this.listen()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1887 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1888
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1889 Typeahead.prototype = {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1890
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1891 constructor: Typeahead
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1892
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1893 , select: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1894 var val = this.$menu.find('.active').attr('data-value')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1895 this.$element
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1896 .val(this.updater(val))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1897 .change()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1898 return this.hide()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1899 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1900
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1901 , updater: function (item) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1902 return item
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1903 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1904
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1905 , show: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1906 var pos = $.extend({}, this.$element.position(), {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1907 height: this.$element[0].offsetHeight
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1908 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1909
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1910 this.$menu
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1911 .insertAfter(this.$element)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1912 .css({
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1913 top: pos.top + pos.height
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1914 , left: pos.left
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1915 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1916 .show()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1917
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1918 this.shown = true
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1919 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1920 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1921
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1922 , hide: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1923 this.$menu.hide()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1924 this.shown = false
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1925 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1926 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1927
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1928 , lookup: function (event) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1929 var items
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1930
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1931 this.query = this.$element.val()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1932
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1933 if (!this.query || this.query.length < this.options.minLength) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1934 return this.shown ? this.hide() : this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1935 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1936
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1937 items = $.isFunction(this.source) ? this.source(this.query, $.proxy(this.process, this)) : this.source
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1938
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1939 return items ? this.process(items) : this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1940 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1941
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1942 , process: function (items) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1943 var that = this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1944
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1945 items = $.grep(items, function (item) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1946 return that.matcher(item)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1947 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1948
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1949 items = this.sorter(items)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1950
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1951 if (!items.length) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1952 return this.shown ? this.hide() : this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1953 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1954
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1955 return this.render(items.slice(0, this.options.items)).show()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1956 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1957
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1958 , matcher: function (item) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1959 return ~item.toLowerCase().indexOf(this.query.toLowerCase())
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1960 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1961
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1962 , sorter: function (items) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1963 var beginswith = []
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1964 , caseSensitive = []
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1965 , caseInsensitive = []
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1966 , item
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1967
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1968 while (item = items.shift()) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1969 if (!item.toLowerCase().indexOf(this.query.toLowerCase())) beginswith.push(item)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1970 else if (~item.indexOf(this.query)) caseSensitive.push(item)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1971 else caseInsensitive.push(item)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1972 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1973
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1974 return beginswith.concat(caseSensitive, caseInsensitive)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1975 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1976
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1977 , highlighter: function (item) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1978 var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1979 return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1980 return '<strong>' + match + '</strong>'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1981 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1982 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1983
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1984 , render: function (items) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1985 var that = this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1986
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1987 items = $(items).map(function (i, item) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1988 i = $(that.options.item).attr('data-value', item)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1989 i.find('a').html(that.highlighter(item))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1990 return i[0]
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1991 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1992
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1993 items.first().addClass('active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1994 this.$menu.html(items)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1995 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1996 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1997
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1998 , next: function (event) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1999 var active = this.$menu.find('.active').removeClass('active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2000 , next = active.next()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2001
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2002 if (!next.length) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2003 next = $(this.$menu.find('li')[0])
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2004 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2005
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2006 next.addClass('active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2007 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2008
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2009 , prev: function (event) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2010 var active = this.$menu.find('.active').removeClass('active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2011 , prev = active.prev()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2012
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2013 if (!prev.length) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2014 prev = this.$menu.find('li').last()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2015 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2016
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2017 prev.addClass('active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2018 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2019
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2020 , listen: function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2021 this.$element
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2022 .on('blur', $.proxy(this.blur, this))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2023 .on('keypress', $.proxy(this.keypress, this))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2024 .on('keyup', $.proxy(this.keyup, this))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2025
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2026 if (this.eventSupported('keydown')) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2027 this.$element.on('keydown', $.proxy(this.keydown, this))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2028 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2029
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2030 this.$menu
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2031 .on('click', $.proxy(this.click, this))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2032 .on('mouseenter', 'li', $.proxy(this.mouseenter, this))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2033 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2034
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2035 , eventSupported: function(eventName) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2036 var isSupported = eventName in this.$element
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2037 if (!isSupported) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2038 this.$element.setAttribute(eventName, 'return;')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2039 isSupported = typeof this.$element[eventName] === 'function'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2040 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2041 return isSupported
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2042 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2043
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2044 , move: function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2045 if (!this.shown) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2046
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2047 switch(e.keyCode) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2048 case 9: // tab
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2049 case 13: // enter
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2050 case 27: // escape
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2051 e.preventDefault()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2052 break
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2053
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2054 case 38: // up arrow
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2055 e.preventDefault()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2056 this.prev()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2057 break
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2058
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2059 case 40: // down arrow
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2060 e.preventDefault()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2061 this.next()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2062 break
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2063 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2064
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2065 e.stopPropagation()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2066 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2067
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2068 , keydown: function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2069 this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40,38,9,13,27])
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2070 this.move(e)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2071 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2072
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2073 , keypress: function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2074 if (this.suppressKeyPressRepeat) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2075 this.move(e)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2076 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2077
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2078 , keyup: function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2079 switch(e.keyCode) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2080 case 40: // down arrow
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2081 case 38: // up arrow
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2082 case 16: // shift
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2083 case 17: // ctrl
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2084 case 18: // alt
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2085 break
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2086
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2087 case 9: // tab
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2088 case 13: // enter
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2089 if (!this.shown) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2090 this.select()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2091 break
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2092
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2093 case 27: // escape
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2094 if (!this.shown) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2095 this.hide()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2096 break
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2097
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2098 default:
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2099 this.lookup()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2100 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2101
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2102 e.stopPropagation()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2103 e.preventDefault()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2104 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2105
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2106 , blur: function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2107 var that = this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2108 setTimeout(function () { that.hide() }, 150)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2109 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2110
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2111 , click: function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2112 e.stopPropagation()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2113 e.preventDefault()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2114 this.select()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2115 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2116
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2117 , mouseenter: function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2118 this.$menu.find('.active').removeClass('active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2119 $(e.currentTarget).addClass('active')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2120 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2121
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2122 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2123
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2124
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2125 /* TYPEAHEAD PLUGIN DEFINITION
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2126 * =========================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2127
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2128 var old = $.fn.typeahead
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2129
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2130 $.fn.typeahead = function (option) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2131 return this.each(function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2132 var $this = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2133 , data = $this.data('typeahead')
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2134 , options = typeof option == 'object' && option
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2135 if (!data) $this.data('typeahead', (data = new Typeahead(this, options)))
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2136 if (typeof option == 'string') data[option]()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2137 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2138 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2139
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2140 $.fn.typeahead.defaults = {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2141 source: []
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2142 , items: 8
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2143 , menu: '<ul class="typeahead dropdown-menu"></ul>'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2144 , item: '<li><a href="#"></a></li>'
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2145 , minLength: 1
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2146 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2147
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2148 $.fn.typeahead.Constructor = Typeahead
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2149
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2150
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2151 /* TYPEAHEAD NO CONFLICT
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2152 * =================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2153
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2154 $.fn.typeahead.noConflict = function () {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2155 $.fn.typeahead = old
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2156 return this
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2157 }
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2158
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2159
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2160 /* TYPEAHEAD DATA-API
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2161 * ================== */
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2162
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2163 $(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2164 var $this = $(this)
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2165 if ($this.data('typeahead')) return
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2166 e.preventDefault()
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2167 $this.typeahead($this.data())
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2168 })
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2169
6ac0b74a57f7 UI improvements for page editing.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2170 }(window.jQuery);