Newer bootstrap w/ fixes
This commit is contained in:
1 parent
32bb4d94ab
commit
368228e5fa
39 files changed
+2931
-9598
No files matched your search
+1
-1
@@ -2,5 +2,5 @@
|
|||||||
*.pyc
|
*.pyc
|
||||||
settings.py
|
settings.py
|
||||||
dev.db
|
dev.db
|
||||||
static/gaute/.sass-cache
|
static/.sass-cache
|
||||||
uploads/[^.]*
|
uploads/[^.]*
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# Require any additional compass plugins here.
|
||||||
|
require 'bootstrap-sass'
|
||||||
|
|
||||||
|
# Set this to the root of your project when deployed:
|
||||||
|
http_path = "/static/"
|
||||||
|
css_dir = "stylesheets"
|
||||||
|
sass_dir = "sass"
|
||||||
|
images_dir = "img"
|
||||||
|
javascripts_dir = "js"
|
||||||
|
fonts_dir = "fonts"
|
||||||
|
|
||||||
|
output_style = :compact
|
||||||
|
relative_assets = true
|
||||||
|
line_comments = false
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
# Require any additional compass plugins here.
|
|
||||||
require 'compass_twitter_bootstrap'
|
|
||||||
|
|
||||||
# Set this to the root of your project when deployed:
|
|
||||||
http_path = "/static/"
|
|
||||||
css_dir = "stylesheets"
|
|
||||||
sass_dir = "sass"
|
|
||||||
images_dir = "gaute/img"
|
|
||||||
javascripts_dir = "javascripts"
|
|
||||||
|
|
||||||
# You can select your preferred output style here (can be overridden via the command line):
|
|
||||||
# output_style = :expanded or :nested or :compact or :compressed
|
|
||||||
# To enable relative paths to assets via compass helper functions. Uncomment:
|
|
||||||
# relative_assets = true
|
|
||||||
|
|
||||||
# To disable debugging comments that display the original location of your selectors. Uncomment:
|
|
||||||
line_comments = false
|
|
||||||
|
|
||||||
|
|
||||||
# If you prefer the indented syntax, you might want to regenerate this
|
|
||||||
# project again passing --syntax sass, or you can uncomment this:
|
|
||||||
# preferred_syntax = :sass
|
|
||||||
# and then run:
|
|
||||||
# sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.3 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 4.3 KiB |
@@ -1 +0,0 @@
|
|||||||
@import "compass_twitter_bootstrap";
|
|
||||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File renamed without changes.
File renamed without changes.
File renamed without changes.
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 8.6 KiB |
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Vendored
+35
-36
@@ -1,5 +1,5 @@
|
|||||||
/* ==========================================================
|
/* ==========================================================
|
||||||
* bootstrap-alert.js v2.0.0
|
* bootstrap-alert.js v2.1.1
|
||||||
* http://twitter.github.com/bootstrap/javascript.html#alerts
|
* http://twitter.github.com/bootstrap/javascript.html#alerts
|
||||||
* ==========================================================
|
* ==========================================================
|
||||||
* Copyright 2012 Twitter, Inc.
|
* Copyright 2012 Twitter, Inc.
|
||||||
@@ -18,58 +18,57 @@
|
|||||||
* ========================================================== */
|
* ========================================================== */
|
||||||
|
|
||||||
|
|
||||||
!function( $ ){
|
!function ($) {
|
||||||
|
|
||||||
|
"use strict"; // jshint ;_;
|
||||||
|
|
||||||
"use strict"
|
|
||||||
|
|
||||||
/* ALERT CLASS DEFINITION
|
/* ALERT CLASS DEFINITION
|
||||||
* ====================== */
|
* ====================== */
|
||||||
|
|
||||||
var dismiss = '[data-dismiss="alert"]'
|
var dismiss = '[data-dismiss="alert"]'
|
||||||
, Alert = function ( el ) {
|
, Alert = function (el) {
|
||||||
$(el).on('click', dismiss, this.close)
|
$(el).on('click', dismiss, this.close)
|
||||||
}
|
}
|
||||||
|
|
||||||
Alert.prototype = {
|
Alert.prototype.close = function (e) {
|
||||||
|
var $this = $(this)
|
||||||
|
, selector = $this.attr('data-target')
|
||||||
|
, $parent
|
||||||
|
|
||||||
constructor: Alert
|
if (!selector) {
|
||||||
|
selector = $this.attr('href')
|
||||||
, close: function ( e ) {
|
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
||||||
var $this = $(this)
|
|
||||||
, selector = $this.attr('data-target')
|
|
||||||
, $parent
|
|
||||||
|
|
||||||
if (!selector) {
|
|
||||||
selector = $this.attr('href')
|
|
||||||
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
|
||||||
}
|
|
||||||
|
|
||||||
$parent = $(selector)
|
|
||||||
$parent.trigger('close')
|
|
||||||
|
|
||||||
e && e.preventDefault()
|
|
||||||
|
|
||||||
$parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
|
|
||||||
|
|
||||||
$parent.removeClass('in')
|
|
||||||
|
|
||||||
function removeElement() {
|
|
||||||
$parent.remove()
|
|
||||||
$parent.trigger('closed')
|
|
||||||
}
|
|
||||||
|
|
||||||
$.support.transition && $parent.hasClass('fade') ?
|
|
||||||
$parent.on($.support.transition.end, removeElement) :
|
|
||||||
removeElement()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$parent = $(selector)
|
||||||
|
|
||||||
|
e && e.preventDefault()
|
||||||
|
|
||||||
|
$parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
|
||||||
|
|
||||||
|
$parent.trigger(e = $.Event('close'))
|
||||||
|
|
||||||
|
if (e.isDefaultPrevented()) return
|
||||||
|
|
||||||
|
$parent.removeClass('in')
|
||||||
|
|
||||||
|
function removeElement() {
|
||||||
|
$parent
|
||||||
|
.trigger('closed')
|
||||||
|
.remove()
|
||||||
|
}
|
||||||
|
|
||||||
|
$.support.transition && $parent.hasClass('fade') ?
|
||||||
|
$parent.on($.support.transition.end, removeElement) :
|
||||||
|
removeElement()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* ALERT PLUGIN DEFINITION
|
/* ALERT PLUGIN DEFINITION
|
||||||
* ======================= */
|
* ======================= */
|
||||||
|
|
||||||
$.fn.alert = function ( option ) {
|
$.fn.alert = function (option) {
|
||||||
return this.each(function () {
|
return this.each(function () {
|
||||||
var $this = $(this)
|
var $this = $(this)
|
||||||
, data = $this.data('alert')
|
, data = $this.data('alert')
|
||||||
@@ -88,4 +87,4 @@
|
|||||||
$('body').on('click.alert.data-api', dismiss, Alert.prototype.close)
|
$('body').on('click.alert.data-api', dismiss, Alert.prototype.close)
|
||||||
})
|
})
|
||||||
|
|
||||||
}( window.jQuery )
|
}(window.jQuery);
|
||||||
Vendored
+96
@@ -0,0 +1,96 @@
|
|||||||
|
/* ============================================================
|
||||||
|
* bootstrap-button.js v2.1.1
|
||||||
|
* http://twitter.github.com/bootstrap/javascript.html#buttons
|
||||||
|
* ============================================================
|
||||||
|
* Copyright 2012 Twitter, Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
* ============================================================ */
|
||||||
|
|
||||||
|
|
||||||
|
!function ($) {
|
||||||
|
|
||||||
|
"use strict"; // jshint ;_;
|
||||||
|
|
||||||
|
|
||||||
|
/* BUTTON PUBLIC CLASS DEFINITION
|
||||||
|
* ============================== */
|
||||||
|
|
||||||
|
var Button = function (element, options) {
|
||||||
|
this.$element = $(element)
|
||||||
|
this.options = $.extend({}, $.fn.button.defaults, options)
|
||||||
|
}
|
||||||
|
|
||||||
|
Button.prototype.setState = function (state) {
|
||||||
|
var d = 'disabled'
|
||||||
|
, $el = this.$element
|
||||||
|
, data = $el.data()
|
||||||
|
, val = $el.is('input') ? 'val' : 'html'
|
||||||
|
|
||||||
|
state = state + 'Text'
|
||||||
|
data.resetText || $el.data('resetText', $el[val]())
|
||||||
|
|
||||||
|
$el[val](data[state] || this.options[state])
|
||||||
|
|
||||||
|
// push to event loop to allow forms to submit
|
||||||
|
setTimeout(function () {
|
||||||
|
state == 'loadingText' ?
|
||||||
|
$el.addClass(d).attr(d, d) :
|
||||||
|
$el.removeClass(d).removeAttr(d)
|
||||||
|
}, 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
Button.prototype.toggle = function () {
|
||||||
|
var $parent = this.$element.closest('[data-toggle="buttons-radio"]')
|
||||||
|
|
||||||
|
$parent && $parent
|
||||||
|
.find('.active')
|
||||||
|
.removeClass('active')
|
||||||
|
|
||||||
|
this.$element.toggleClass('active')
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* BUTTON PLUGIN DEFINITION
|
||||||
|
* ======================== */
|
||||||
|
|
||||||
|
$.fn.button = function (option) {
|
||||||
|
return this.each(function () {
|
||||||
|
var $this = $(this)
|
||||||
|
, data = $this.data('button')
|
||||||
|
, options = typeof option == 'object' && option
|
||||||
|
if (!data) $this.data('button', (data = new Button(this, options)))
|
||||||
|
if (option == 'toggle') data.toggle()
|
||||||
|
else if (option) data.setState(option)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
$.fn.button.defaults = {
|
||||||
|
loadingText: 'loading...'
|
||||||
|
}
|
||||||
|
|
||||||
|
$.fn.button.Constructor = Button
|
||||||
|
|
||||||
|
|
||||||
|
/* BUTTON DATA-API
|
||||||
|
* =============== */
|
||||||
|
|
||||||
|
$(function () {
|
||||||
|
$('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) {
|
||||||
|
var $btn = $(e.target)
|
||||||
|
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
|
||||||
|
$btn.button('toggle')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
}(window.jQuery);
|
||||||
Vendored
+176
@@ -0,0 +1,176 @@
|
|||||||
|
/* ==========================================================
|
||||||
|
* bootstrap-carousel.js v2.1.1
|
||||||
|
* http://twitter.github.com/bootstrap/javascript.html#carousel
|
||||||
|
* ==========================================================
|
||||||
|
* Copyright 2012 Twitter, Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
* ========================================================== */
|
||||||
|
|
||||||
|
|
||||||
|
!function ($) {
|
||||||
|
|
||||||
|
"use strict"; // jshint ;_;
|
||||||
|
|
||||||
|
|
||||||
|
/* CAROUSEL CLASS DEFINITION
|
||||||
|
* ========================= */
|
||||||
|
|
||||||
|
var Carousel = function (element, options) {
|
||||||
|
this.$element = $(element)
|
||||||
|
this.options = options
|
||||||
|
this.options.slide && this.slide(this.options.slide)
|
||||||
|
this.options.pause == 'hover' && this.$element
|
||||||
|
.on('mouseenter', $.proxy(this.pause, this))
|
||||||
|
.on('mouseleave', $.proxy(this.cycle, this))
|
||||||
|
}
|
||||||
|
|
||||||
|
Carousel.prototype = {
|
||||||
|
|
||||||
|
cycle: function (e) {
|
||||||
|
if (!e) this.paused = false
|
||||||
|
this.options.interval
|
||||||
|
&& !this.paused
|
||||||
|
&& (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
, to: function (pos) {
|
||||||
|
var $active = this.$element.find('.item.active')
|
||||||
|
, children = $active.parent().children()
|
||||||
|
, activePos = children.index($active)
|
||||||
|
, that = this
|
||||||
|
|
||||||
|
if (pos > (children.length - 1) || pos < 0) return
|
||||||
|
|
||||||
|
if (this.sliding) {
|
||||||
|
return this.$element.one('slid', function () {
|
||||||
|
that.to(pos)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if (activePos == pos) {
|
||||||
|
return this.pause().cycle()
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos]))
|
||||||
|
}
|
||||||
|
|
||||||
|
, pause: function (e) {
|
||||||
|
if (!e) this.paused = true
|
||||||
|
if (this.$element.find('.next, .prev').length && $.support.transition.end) {
|
||||||
|
this.$element.trigger($.support.transition.end)
|
||||||
|
this.cycle()
|
||||||
|
}
|
||||||
|
clearInterval(this.interval)
|
||||||
|
this.interval = null
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
, next: function () {
|
||||||
|
if (this.sliding) return
|
||||||
|
return this.slide('next')
|
||||||
|
}
|
||||||
|
|
||||||
|
, prev: function () {
|
||||||
|
if (this.sliding) return
|
||||||
|
return this.slide('prev')
|
||||||
|
}
|
||||||
|
|
||||||
|
, slide: function (type, next) {
|
||||||
|
var $active = this.$element.find('.item.active')
|
||||||
|
, $next = next || $active[type]()
|
||||||
|
, isCycling = this.interval
|
||||||
|
, direction = type == 'next' ? 'left' : 'right'
|
||||||
|
, fallback = type == 'next' ? 'first' : 'last'
|
||||||
|
, that = this
|
||||||
|
, e = $.Event('slide', {
|
||||||
|
relatedTarget: $next[0]
|
||||||
|
})
|
||||||
|
|
||||||
|
this.sliding = true
|
||||||
|
|
||||||
|
isCycling && this.pause()
|
||||||
|
|
||||||
|
$next = $next.length ? $next : this.$element.find('.item')[fallback]()
|
||||||
|
|
||||||
|
if ($next.hasClass('active')) return
|
||||||
|
|
||||||
|
if ($.support.transition && this.$element.hasClass('slide')) {
|
||||||
|
this.$element.trigger(e)
|
||||||
|
if (e.isDefaultPrevented()) return
|
||||||
|
$next.addClass(type)
|
||||||
|
$next[0].offsetWidth // force reflow
|
||||||
|
$active.addClass(direction)
|
||||||
|
$next.addClass(direction)
|
||||||
|
this.$element.one($.support.transition.end, function () {
|
||||||
|
$next.removeClass([type, direction].join(' ')).addClass('active')
|
||||||
|
$active.removeClass(['active', direction].join(' '))
|
||||||
|
that.sliding = false
|
||||||
|
setTimeout(function () { that.$element.trigger('slid') }, 0)
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$element.trigger(e)
|
||||||
|
if (e.isDefaultPrevented()) return
|
||||||
|
$active.removeClass('active')
|
||||||
|
$next.addClass('active')
|
||||||
|
this.sliding = false
|
||||||
|
this.$element.trigger('slid')
|
||||||
|
}
|
||||||
|
|
||||||
|
isCycling && this.cycle()
|
||||||
|
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* CAROUSEL PLUGIN DEFINITION
|
||||||
|
* ========================== */
|
||||||
|
|
||||||
|
$.fn.carousel = function (option) {
|
||||||
|
return this.each(function () {
|
||||||
|
var $this = $(this)
|
||||||
|
, data = $this.data('carousel')
|
||||||
|
, options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option)
|
||||||
|
, action = typeof option == 'string' ? option : options.slide
|
||||||
|
if (!data) $this.data('carousel', (data = new Carousel(this, options)))
|
||||||
|
if (typeof option == 'number') data.to(option)
|
||||||
|
else if (action) data[action]()
|
||||||
|
else if (options.interval) data.cycle()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
$.fn.carousel.defaults = {
|
||||||
|
interval: 5000
|
||||||
|
, pause: 'hover'
|
||||||
|
}
|
||||||
|
|
||||||
|
$.fn.carousel.Constructor = Carousel
|
||||||
|
|
||||||
|
|
||||||
|
/* CAROUSEL DATA-API
|
||||||
|
* ================= */
|
||||||
|
|
||||||
|
$(function () {
|
||||||
|
$('body').on('click.carousel.data-api', '[data-slide]', function ( e ) {
|
||||||
|
var $this = $(this), href
|
||||||
|
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|
||||||
|
, options = !$target.data('modal') && $.extend({}, $target.data(), $this.data())
|
||||||
|
$target.carousel(options)
|
||||||
|
e.preventDefault()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
}(window.jQuery);
|
||||||
Vendored
+50
-28
@@ -1,5 +1,5 @@
|
|||||||
/* =============================================================
|
/* =============================================================
|
||||||
* bootstrap-collapse.js v2.0.0
|
* bootstrap-collapse.js v2.1.1
|
||||||
* http://twitter.github.com/bootstrap/javascript.html#collapse
|
* http://twitter.github.com/bootstrap/javascript.html#collapse
|
||||||
* =============================================================
|
* =============================================================
|
||||||
* Copyright 2012 Twitter, Inc.
|
* Copyright 2012 Twitter, Inc.
|
||||||
@@ -17,16 +17,21 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
* ============================================================ */
|
* ============================================================ */
|
||||||
|
|
||||||
!function( $ ){
|
|
||||||
|
|
||||||
"use strict"
|
!function ($) {
|
||||||
|
|
||||||
var Collapse = function ( element, options ) {
|
"use strict"; // jshint ;_;
|
||||||
this.$element = $(element)
|
|
||||||
|
|
||||||
|
/* COLLAPSE PUBLIC CLASS DEFINITION
|
||||||
|
* ================================ */
|
||||||
|
|
||||||
|
var Collapse = function (element, options) {
|
||||||
|
this.$element = $(element)
|
||||||
this.options = $.extend({}, $.fn.collapse.defaults, options)
|
this.options = $.extend({}, $.fn.collapse.defaults, options)
|
||||||
|
|
||||||
if (this.options["parent"]) {
|
if (this.options.parent) {
|
||||||
this.$parent = $(this.options["parent"])
|
this.$parent = $(this.options.parent)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.options.toggle && this.toggle()
|
this.options.toggle && this.toggle()
|
||||||
@@ -42,31 +47,39 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
, show: function () {
|
, show: function () {
|
||||||
var dimension = this.dimension()
|
var dimension
|
||||||
, scroll = $.camelCase(['scroll', dimension].join('-'))
|
, scroll
|
||||||
, actives = this.$parent && this.$parent.find('.in')
|
, actives
|
||||||
, hasData
|
, hasData
|
||||||
|
|
||||||
|
if (this.transitioning) return
|
||||||
|
|
||||||
|
dimension = this.dimension()
|
||||||
|
scroll = $.camelCase(['scroll', dimension].join('-'))
|
||||||
|
actives = this.$parent && this.$parent.find('> .accordion-group > .in')
|
||||||
|
|
||||||
if (actives && actives.length) {
|
if (actives && actives.length) {
|
||||||
hasData = actives.data('collapse')
|
hasData = actives.data('collapse')
|
||||||
|
if (hasData && hasData.transitioning) return
|
||||||
actives.collapse('hide')
|
actives.collapse('hide')
|
||||||
hasData || actives.data('collapse', null)
|
hasData || actives.data('collapse', null)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$element[dimension](0)
|
this.$element[dimension](0)
|
||||||
this.transition('addClass', 'show', 'shown')
|
this.transition('addClass', $.Event('show'), 'shown')
|
||||||
this.$element[dimension](this.$element[0][scroll])
|
$.support.transition && this.$element[dimension](this.$element[0][scroll])
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
, hide: function () {
|
, hide: function () {
|
||||||
var dimension = this.dimension()
|
var dimension
|
||||||
|
if (this.transitioning) return
|
||||||
|
dimension = this.dimension()
|
||||||
this.reset(this.$element[dimension]())
|
this.reset(this.$element[dimension]())
|
||||||
this.transition('removeClass', 'hide', 'hidden')
|
this.transition('removeClass', $.Event('hide'), 'hidden')
|
||||||
this.$element[dimension](0)
|
this.$element[dimension](0)
|
||||||
}
|
}
|
||||||
|
|
||||||
, reset: function ( size ) {
|
, reset: function (size) {
|
||||||
var dimension = this.dimension()
|
var dimension = this.dimension()
|
||||||
|
|
||||||
this.$element
|
this.$element
|
||||||
@@ -74,35 +87,43 @@
|
|||||||
[dimension](size || 'auto')
|
[dimension](size || 'auto')
|
||||||
[0].offsetWidth
|
[0].offsetWidth
|
||||||
|
|
||||||
this.$element.addClass('collapse')
|
this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
|
||||||
|
|
||||||
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
, transition: function ( method, startEvent, completeEvent ) {
|
, transition: function (method, startEvent, completeEvent) {
|
||||||
var that = this
|
var that = this
|
||||||
, complete = function () {
|
, complete = function () {
|
||||||
if (startEvent == 'show') that.reset()
|
if (startEvent.type == 'show') that.reset()
|
||||||
|
that.transitioning = 0
|
||||||
that.$element.trigger(completeEvent)
|
that.$element.trigger(completeEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$element
|
this.$element.trigger(startEvent)
|
||||||
.trigger(startEvent)
|
|
||||||
[method]('in')
|
if (startEvent.isDefaultPrevented()) return
|
||||||
|
|
||||||
|
this.transitioning = 1
|
||||||
|
|
||||||
|
this.$element[method]('in')
|
||||||
|
|
||||||
$.support.transition && this.$element.hasClass('collapse') ?
|
$.support.transition && this.$element.hasClass('collapse') ?
|
||||||
this.$element.one($.support.transition.end, complete) :
|
this.$element.one($.support.transition.end, complete) :
|
||||||
complete()
|
complete()
|
||||||
}
|
}
|
||||||
|
|
||||||
, toggle: function () {
|
, toggle: function () {
|
||||||
this[this.$element.hasClass('in') ? 'hide' : 'show']()
|
this[this.$element.hasClass('in') ? 'hide' : 'show']()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* COLLAPSIBLE PLUGIN DEFINITION
|
|
||||||
|
/* COLLAPSIBLE PLUGIN DEFINITION
|
||||||
* ============================== */
|
* ============================== */
|
||||||
|
|
||||||
$.fn.collapse = function ( option ) {
|
$.fn.collapse = function (option) {
|
||||||
return this.each(function () {
|
return this.each(function () {
|
||||||
var $this = $(this)
|
var $this = $(this)
|
||||||
, data = $this.data('collapse')
|
, data = $this.data('collapse')
|
||||||
@@ -123,14 +144,15 @@
|
|||||||
* ==================== */
|
* ==================== */
|
||||||
|
|
||||||
$(function () {
|
$(function () {
|
||||||
$('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) {
|
$('body').on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
|
||||||
var $this = $(this), href
|
var $this = $(this), href
|
||||||
, target = $this.attr('data-target')
|
, target = $this.attr('data-target')
|
||||||
|| e.preventDefault()
|
|| e.preventDefault()
|
||||||
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
|
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
|
||||||
, option = $(target).data('collapse') ? 'toggle' : $this.data()
|
, option = $(target).data('collapse') ? 'toggle' : $this.data()
|
||||||
|
$this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
|
||||||
$(target).collapse(option)
|
$(target).collapse(option)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
}( window.jQuery )
|
}(window.jQuery);
|
||||||
Vendored
+150
@@ -0,0 +1,150 @@
|
|||||||
|
/* ============================================================
|
||||||
|
* bootstrap-dropdown.js v2.1.1
|
||||||
|
* http://twitter.github.com/bootstrap/javascript.html#dropdowns
|
||||||
|
* ============================================================
|
||||||
|
* Copyright 2012 Twitter, Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
* ============================================================ */
|
||||||
|
|
||||||
|
|
||||||
|
!function ($) {
|
||||||
|
|
||||||
|
"use strict"; // jshint ;_;
|
||||||
|
|
||||||
|
|
||||||
|
/* DROPDOWN CLASS DEFINITION
|
||||||
|
* ========================= */
|
||||||
|
|
||||||
|
var toggle = '[data-toggle=dropdown]'
|
||||||
|
, Dropdown = function (element) {
|
||||||
|
var $el = $(element).on('click.dropdown.data-api', this.toggle)
|
||||||
|
$('html').on('click.dropdown.data-api', function () {
|
||||||
|
$el.parent().removeClass('open')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
Dropdown.prototype = {
|
||||||
|
|
||||||
|
constructor: Dropdown
|
||||||
|
|
||||||
|
, toggle: function (e) {
|
||||||
|
var $this = $(this)
|
||||||
|
, $parent
|
||||||
|
, isActive
|
||||||
|
|
||||||
|
if ($this.is('.disabled, :disabled')) return
|
||||||
|
|
||||||
|
$parent = getParent($this)
|
||||||
|
|
||||||
|
isActive = $parent.hasClass('open')
|
||||||
|
|
||||||
|
clearMenus()
|
||||||
|
|
||||||
|
if (!isActive) {
|
||||||
|
$parent.toggleClass('open')
|
||||||
|
$this.focus()
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
, keydown: function (e) {
|
||||||
|
var $this
|
||||||
|
, $items
|
||||||
|
, $active
|
||||||
|
, $parent
|
||||||
|
, isActive
|
||||||
|
, index
|
||||||
|
|
||||||
|
if (!/(38|40|27)/.test(e.keyCode)) return
|
||||||
|
|
||||||
|
$this = $(this)
|
||||||
|
|
||||||
|
e.preventDefault()
|
||||||
|
e.stopPropagation()
|
||||||
|
|
||||||
|
if ($this.is('.disabled, :disabled')) return
|
||||||
|
|
||||||
|
$parent = getParent($this)
|
||||||
|
|
||||||
|
isActive = $parent.hasClass('open')
|
||||||
|
|
||||||
|
if (!isActive || (isActive && e.keyCode == 27)) return $this.click()
|
||||||
|
|
||||||
|
$items = $('[role=menu] li:not(.divider) a', $parent)
|
||||||
|
|
||||||
|
if (!$items.length) return
|
||||||
|
|
||||||
|
index = $items.index($items.filter(':focus'))
|
||||||
|
|
||||||
|
if (e.keyCode == 38 && index > 0) index-- // up
|
||||||
|
if (e.keyCode == 40 && index < $items.length - 1) index++ // down
|
||||||
|
if (!~index) index = 0
|
||||||
|
|
||||||
|
$items
|
||||||
|
.eq(index)
|
||||||
|
.focus()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function clearMenus() {
|
||||||
|
getParent($(toggle))
|
||||||
|
.removeClass('open')
|
||||||
|
}
|
||||||
|
|
||||||
|
function getParent($this) {
|
||||||
|
var selector = $this.attr('data-target')
|
||||||
|
, $parent
|
||||||
|
|
||||||
|
if (!selector) {
|
||||||
|
selector = $this.attr('href')
|
||||||
|
selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
||||||
|
}
|
||||||
|
|
||||||
|
$parent = $(selector)
|
||||||
|
$parent.length || ($parent = $this.parent())
|
||||||
|
|
||||||
|
return $parent
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* DROPDOWN PLUGIN DEFINITION
|
||||||
|
* ========================== */
|
||||||
|
|
||||||
|
$.fn.dropdown = function (option) {
|
||||||
|
return this.each(function () {
|
||||||
|
var $this = $(this)
|
||||||
|
, data = $this.data('dropdown')
|
||||||
|
if (!data) $this.data('dropdown', (data = new Dropdown(this)))
|
||||||
|
if (typeof option == 'string') data[option].call($this)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
$.fn.dropdown.Constructor = Dropdown
|
||||||
|
|
||||||
|
|
||||||
|
/* APPLY TO STANDARD DROPDOWN ELEMENTS
|
||||||
|
* =================================== */
|
||||||
|
|
||||||
|
$(function () {
|
||||||
|
$('html')
|
||||||
|
.on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
|
||||||
|
$('body')
|
||||||
|
.on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
|
||||||
|
.on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
|
||||||
|
.on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
|
||||||
|
})
|
||||||
|
|
||||||
|
}(window.jQuery);
|
||||||
Vendored
+119
-90
@@ -1,5 +1,5 @@
|
|||||||
/* =========================================================
|
/* =========================================================
|
||||||
* bootstrap-modal.js v2.0.2
|
* bootstrap-modal.js v2.1.1
|
||||||
* http://twitter.github.com/bootstrap/javascript.html#modals
|
* http://twitter.github.com/bootstrap/javascript.html#modals
|
||||||
* =========================================================
|
* =========================================================
|
||||||
* Copyright 2012 Twitter, Inc.
|
* Copyright 2012 Twitter, Inc.
|
||||||
@@ -18,17 +18,19 @@
|
|||||||
* ========================================================= */
|
* ========================================================= */
|
||||||
|
|
||||||
|
|
||||||
!function( $ ){
|
!function ($) {
|
||||||
|
|
||||||
|
"use strict"; // jshint ;_;
|
||||||
|
|
||||||
"use strict"
|
|
||||||
|
|
||||||
/* MODAL CLASS DEFINITION
|
/* MODAL CLASS DEFINITION
|
||||||
* ====================== */
|
* ====================== */
|
||||||
|
|
||||||
var Modal = function ( content, options ) {
|
var Modal = function (element, options) {
|
||||||
this.options = options
|
this.options = options
|
||||||
this.$element = $(content)
|
this.$element = $(element)
|
||||||
.delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
|
.delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
|
||||||
|
this.options.remote && this.$element.find('.modal-body').load(this.options.remote)
|
||||||
}
|
}
|
||||||
|
|
||||||
Modal.prototype = {
|
Modal.prototype = {
|
||||||
@@ -41,19 +43,24 @@
|
|||||||
|
|
||||||
, show: function () {
|
, show: function () {
|
||||||
var that = this
|
var that = this
|
||||||
|
, e = $.Event('show')
|
||||||
|
|
||||||
if (this.isShown) return
|
this.$element.trigger(e)
|
||||||
|
|
||||||
|
if (this.isShown || e.isDefaultPrevented()) return
|
||||||
|
|
||||||
$('body').addClass('modal-open')
|
$('body').addClass('modal-open')
|
||||||
|
|
||||||
this.isShown = true
|
this.isShown = true
|
||||||
this.$element.trigger('show')
|
|
||||||
|
|
||||||
escape.call(this)
|
this.escape()
|
||||||
backdrop.call(this, function () {
|
|
||||||
|
this.backdrop(function () {
|
||||||
var transition = $.support.transition && that.$element.hasClass('fade')
|
var transition = $.support.transition && that.$element.hasClass('fade')
|
||||||
|
|
||||||
!that.$element.parent().length && that.$element.appendTo(document.body) //don't move modals dom position
|
if (!that.$element.parent().length) {
|
||||||
|
that.$element.appendTo(document.body) //don't move modals dom position
|
||||||
|
}
|
||||||
|
|
||||||
that.$element
|
that.$element
|
||||||
.show()
|
.show()
|
||||||
@@ -62,7 +69,12 @@
|
|||||||
that.$element[0].offsetWidth // force reflow
|
that.$element[0].offsetWidth // force reflow
|
||||||
}
|
}
|
||||||
|
|
||||||
that.$element.addClass('in')
|
that.$element
|
||||||
|
.addClass('in')
|
||||||
|
.attr('aria-hidden', false)
|
||||||
|
.focus()
|
||||||
|
|
||||||
|
that.enforceFocus()
|
||||||
|
|
||||||
transition ?
|
transition ?
|
||||||
that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) :
|
that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) :
|
||||||
@@ -71,109 +83,120 @@
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
, hide: function ( e ) {
|
, hide: function (e) {
|
||||||
e && e.preventDefault()
|
e && e.preventDefault()
|
||||||
|
|
||||||
if (!this.isShown) return
|
|
||||||
|
|
||||||
var that = this
|
var that = this
|
||||||
|
|
||||||
|
e = $.Event('hide')
|
||||||
|
|
||||||
|
this.$element.trigger(e)
|
||||||
|
|
||||||
|
if (!this.isShown || e.isDefaultPrevented()) return
|
||||||
|
|
||||||
this.isShown = false
|
this.isShown = false
|
||||||
|
|
||||||
$('body').removeClass('modal-open')
|
$('body').removeClass('modal-open')
|
||||||
|
|
||||||
escape.call(this)
|
this.escape()
|
||||||
|
|
||||||
|
$(document).off('focusin.modal')
|
||||||
|
|
||||||
this.$element
|
this.$element
|
||||||
.trigger('hide')
|
|
||||||
.removeClass('in')
|
.removeClass('in')
|
||||||
|
.attr('aria-hidden', true)
|
||||||
|
|
||||||
$.support.transition && this.$element.hasClass('fade') ?
|
$.support.transition && this.$element.hasClass('fade') ?
|
||||||
hideWithTransition.call(this) :
|
this.hideWithTransition() :
|
||||||
hideModal.call(this)
|
this.hideModal()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
, enforceFocus: function () {
|
||||||
|
var that = this
|
||||||
|
$(document).on('focusin.modal', function (e) {
|
||||||
/* MODAL PRIVATE METHODS
|
if (that.$element[0] !== e.target && !that.$element.has(e.target).length) {
|
||||||
* ===================== */
|
that.$element.focus()
|
||||||
|
}
|
||||||
function hideWithTransition() {
|
})
|
||||||
var that = this
|
|
||||||
, timeout = setTimeout(function () {
|
|
||||||
that.$element.off($.support.transition.end)
|
|
||||||
hideModal.call(that)
|
|
||||||
}, 500)
|
|
||||||
|
|
||||||
this.$element.one($.support.transition.end, function () {
|
|
||||||
clearTimeout(timeout)
|
|
||||||
hideModal.call(that)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function hideModal( that ) {
|
|
||||||
this.$element
|
|
||||||
.hide()
|
|
||||||
.trigger('hidden')
|
|
||||||
|
|
||||||
backdrop.call(this)
|
|
||||||
}
|
|
||||||
|
|
||||||
function backdrop( callback ) {
|
|
||||||
var that = this
|
|
||||||
, animate = this.$element.hasClass('fade') ? 'fade' : ''
|
|
||||||
|
|
||||||
if (this.isShown && this.options.backdrop) {
|
|
||||||
var doAnimate = $.support.transition && animate
|
|
||||||
|
|
||||||
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
|
|
||||||
.appendTo(document.body)
|
|
||||||
|
|
||||||
if (this.options.backdrop != 'static') {
|
|
||||||
this.$backdrop.click($.proxy(this.hide, this))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
|
, escape: function () {
|
||||||
|
var that = this
|
||||||
|
if (this.isShown && this.options.keyboard) {
|
||||||
|
this.$element.on('keyup.dismiss.modal', function ( e ) {
|
||||||
|
e.which == 27 && that.hide()
|
||||||
|
})
|
||||||
|
} else if (!this.isShown) {
|
||||||
|
this.$element.off('keyup.dismiss.modal')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.$backdrop.addClass('in')
|
, hideWithTransition: function () {
|
||||||
|
var that = this
|
||||||
|
, timeout = setTimeout(function () {
|
||||||
|
that.$element.off($.support.transition.end)
|
||||||
|
that.hideModal()
|
||||||
|
}, 500)
|
||||||
|
|
||||||
doAnimate ?
|
this.$element.one($.support.transition.end, function () {
|
||||||
this.$backdrop.one($.support.transition.end, callback) :
|
clearTimeout(timeout)
|
||||||
callback()
|
that.hideModal()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
} else if (!this.isShown && this.$backdrop) {
|
, hideModal: function (that) {
|
||||||
this.$backdrop.removeClass('in')
|
this.$element
|
||||||
|
.hide()
|
||||||
|
.trigger('hidden')
|
||||||
|
|
||||||
$.support.transition && this.$element.hasClass('fade')?
|
this.backdrop()
|
||||||
this.$backdrop.one($.support.transition.end, $.proxy(removeBackdrop, this)) :
|
}
|
||||||
removeBackdrop.call(this)
|
|
||||||
|
|
||||||
} else if (callback) {
|
, removeBackdrop: function () {
|
||||||
callback()
|
this.$backdrop.remove()
|
||||||
}
|
this.$backdrop = null
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeBackdrop() {
|
, backdrop: function (callback) {
|
||||||
this.$backdrop.remove()
|
var that = this
|
||||||
this.$backdrop = null
|
, animate = this.$element.hasClass('fade') ? 'fade' : ''
|
||||||
}
|
|
||||||
|
|
||||||
function escape() {
|
if (this.isShown && this.options.backdrop) {
|
||||||
var that = this
|
var doAnimate = $.support.transition && animate
|
||||||
if (this.isShown && this.options.keyboard) {
|
|
||||||
$(document).on('keyup.dismiss.modal', function ( e ) {
|
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
|
||||||
e.which == 27 && that.hide()
|
.appendTo(document.body)
|
||||||
})
|
|
||||||
} else if (!this.isShown) {
|
if (this.options.backdrop != 'static') {
|
||||||
$(document).off('keyup.dismiss.modal')
|
this.$backdrop.click($.proxy(this.hide, this))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
|
||||||
|
|
||||||
|
this.$backdrop.addClass('in')
|
||||||
|
|
||||||
|
doAnimate ?
|
||||||
|
this.$backdrop.one($.support.transition.end, callback) :
|
||||||
|
callback()
|
||||||
|
|
||||||
|
} else if (!this.isShown && this.$backdrop) {
|
||||||
|
this.$backdrop.removeClass('in')
|
||||||
|
|
||||||
|
$.support.transition && this.$element.hasClass('fade')?
|
||||||
|
this.$backdrop.one($.support.transition.end, $.proxy(this.removeBackdrop, this)) :
|
||||||
|
this.removeBackdrop()
|
||||||
|
|
||||||
|
} else if (callback) {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* MODAL PLUGIN DEFINITION
|
/* MODAL PLUGIN DEFINITION
|
||||||
* ======================= */
|
* ======================= */
|
||||||
|
|
||||||
$.fn.modal = function ( option ) {
|
$.fn.modal = function (option) {
|
||||||
return this.each(function () {
|
return this.each(function () {
|
||||||
var $this = $(this)
|
var $this = $(this)
|
||||||
, data = $this.data('modal')
|
, data = $this.data('modal')
|
||||||
@@ -198,13 +221,19 @@
|
|||||||
|
|
||||||
$(function () {
|
$(function () {
|
||||||
$('body').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) {
|
$('body').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) {
|
||||||
var $this = $(this), href
|
var $this = $(this)
|
||||||
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|
, href = $this.attr('href')
|
||||||
, option = $target.data('modal') ? 'toggle' : $.extend({}, $target.data(), $this.data())
|
, $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
|
||||||
|
, option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
|
||||||
|
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
$target.modal(option)
|
|
||||||
|
$target
|
||||||
|
.modal(option)
|
||||||
|
.one('hide', function () {
|
||||||
|
$this.focus()
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
}( window.jQuery );
|
}(window.jQuery);
|
||||||
Vendored
+19
-11
@@ -1,5 +1,5 @@
|
|||||||
/* ===========================================================
|
/* ===========================================================
|
||||||
* bootstrap-popover.js v2.0.0
|
* bootstrap-popover.js v2.1.1
|
||||||
* http://twitter.github.com/bootstrap/javascript.html#popovers
|
* http://twitter.github.com/bootstrap/javascript.html#popovers
|
||||||
* ===========================================================
|
* ===========================================================
|
||||||
* Copyright 2012 Twitter, Inc.
|
* Copyright 2012 Twitter, Inc.
|
||||||
@@ -18,14 +18,19 @@
|
|||||||
* =========================================================== */
|
* =========================================================== */
|
||||||
|
|
||||||
|
|
||||||
!function( $ ) {
|
!function ($) {
|
||||||
|
|
||||||
"use strict"
|
"use strict"; // jshint ;_;
|
||||||
|
|
||||||
var Popover = function ( element, options ) {
|
|
||||||
|
/* POPOVER PUBLIC CLASS DEFINITION
|
||||||
|
* =============================== */
|
||||||
|
|
||||||
|
var Popover = function (element, options) {
|
||||||
this.init('popover', element, options)
|
this.init('popover', element, options)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
|
/* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
|
||||||
========================================== */
|
========================================== */
|
||||||
|
|
||||||
@@ -38,8 +43,8 @@
|
|||||||
, title = this.getTitle()
|
, title = this.getTitle()
|
||||||
, content = this.getContent()
|
, content = this.getContent()
|
||||||
|
|
||||||
$tip.find('.popover-title')[ $.type(title) == 'object' ? 'append' : 'html' ](title)
|
$tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
|
||||||
$tip.find('.popover-content > *')[ $.type(content) == 'object' ? 'append' : 'html' ](content)
|
$tip.find('.popover-content > *')[this.options.html ? 'html' : 'text'](content)
|
||||||
|
|
||||||
$tip.removeClass('fade top bottom left right in')
|
$tip.removeClass('fade top bottom left right in')
|
||||||
}
|
}
|
||||||
@@ -56,25 +61,27 @@
|
|||||||
content = $e.attr('data-content')
|
content = $e.attr('data-content')
|
||||||
|| (typeof o.content == 'function' ? o.content.call($e[0]) : o.content)
|
|| (typeof o.content == 'function' ? o.content.call($e[0]) : o.content)
|
||||||
|
|
||||||
content = content.toString().replace(/(^\s*|\s*$)/, "")
|
|
||||||
|
|
||||||
return content
|
return content
|
||||||
}
|
}
|
||||||
|
|
||||||
, tip: function() {
|
, tip: function () {
|
||||||
if (!this.$tip) {
|
if (!this.$tip) {
|
||||||
this.$tip = $(this.options.template)
|
this.$tip = $(this.options.template)
|
||||||
}
|
}
|
||||||
return this.$tip
|
return this.$tip
|
||||||
}
|
}
|
||||||
|
|
||||||
|
, destroy: function () {
|
||||||
|
this.hide().$element.off('.' + this.type).removeData(this.type)
|
||||||
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
/* POPOVER PLUGIN DEFINITION
|
/* POPOVER PLUGIN DEFINITION
|
||||||
* ======================= */
|
* ======================= */
|
||||||
|
|
||||||
$.fn.popover = function ( option ) {
|
$.fn.popover = function (option) {
|
||||||
return this.each(function () {
|
return this.each(function () {
|
||||||
var $this = $(this)
|
var $this = $(this)
|
||||||
, data = $this.data('popover')
|
, data = $this.data('popover')
|
||||||
@@ -88,8 +95,9 @@
|
|||||||
|
|
||||||
$.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, {
|
$.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, {
|
||||||
placement: 'right'
|
placement: 'right'
|
||||||
|
, trigger: 'click'
|
||||||
, content: ''
|
, content: ''
|
||||||
, template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'
|
, template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'
|
||||||
})
|
})
|
||||||
|
|
||||||
}( window.jQuery )
|
}(window.jQuery);
|
||||||
Vendored
+151
@@ -0,0 +1,151 @@
|
|||||||
|
/* =============================================================
|
||||||
|
* bootstrap-scrollspy.js v2.1.1
|
||||||
|
* http://twitter.github.com/bootstrap/javascript.html#scrollspy
|
||||||
|
* =============================================================
|
||||||
|
* Copyright 2012 Twitter, Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
* ============================================================== */
|
||||||
|
|
||||||
|
|
||||||
|
!function ($) {
|
||||||
|
|
||||||
|
"use strict"; // jshint ;_;
|
||||||
|
|
||||||
|
|
||||||
|
/* SCROLLSPY CLASS DEFINITION
|
||||||
|
* ========================== */
|
||||||
|
|
||||||
|
function ScrollSpy(element, options) {
|
||||||
|
var process = $.proxy(this.process, this)
|
||||||
|
, $element = $(element).is('body') ? $(window) : $(element)
|
||||||
|
, href
|
||||||
|
this.options = $.extend({}, $.fn.scrollspy.defaults, options)
|
||||||
|
this.$scrollElement = $element.on('scroll.scroll-spy.data-api', process)
|
||||||
|
this.selector = (this.options.target
|
||||||
|
|| ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|
||||||
|
|| '') + ' .nav li > a'
|
||||||
|
this.$body = $('body')
|
||||||
|
this.refresh()
|
||||||
|
this.process()
|
||||||
|
}
|
||||||
|
|
||||||
|
ScrollSpy.prototype = {
|
||||||
|
|
||||||
|
constructor: ScrollSpy
|
||||||
|
|
||||||
|
, refresh: function () {
|
||||||
|
var self = this
|
||||||
|
, $targets
|
||||||
|
|
||||||
|
this.offsets = $([])
|
||||||
|
this.targets = $([])
|
||||||
|
|
||||||
|
$targets = this.$body
|
||||||
|
.find(this.selector)
|
||||||
|
.map(function () {
|
||||||
|
var $el = $(this)
|
||||||
|
, href = $el.data('target') || $el.attr('href')
|
||||||
|
, $href = /^#\w/.test(href) && $(href)
|
||||||
|
return ( $href
|
||||||
|
&& $href.length
|
||||||
|
&& [[ $href.position().top, href ]] ) || null
|
||||||
|
})
|
||||||
|
.sort(function (a, b) { return a[0] - b[0] })
|
||||||
|
.each(function () {
|
||||||
|
self.offsets.push(this[0])
|
||||||
|
self.targets.push(this[1])
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
, process: function () {
|
||||||
|
var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
|
||||||
|
, scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
|
||||||
|
, maxScroll = scrollHeight - this.$scrollElement.height()
|
||||||
|
, offsets = this.offsets
|
||||||
|
, targets = this.targets
|
||||||
|
, activeTarget = this.activeTarget
|
||||||
|
, i
|
||||||
|
|
||||||
|
if (scrollTop >= maxScroll) {
|
||||||
|
return activeTarget != (i = targets.last()[0])
|
||||||
|
&& this.activate ( i )
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = offsets.length; i--;) {
|
||||||
|
activeTarget != targets[i]
|
||||||
|
&& scrollTop >= offsets[i]
|
||||||
|
&& (!offsets[i + 1] || scrollTop <= offsets[i + 1])
|
||||||
|
&& this.activate( targets[i] )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
, activate: function (target) {
|
||||||
|
var active
|
||||||
|
, selector
|
||||||
|
|
||||||
|
this.activeTarget = target
|
||||||
|
|
||||||
|
$(this.selector)
|
||||||
|
.parent('.active')
|
||||||
|
.removeClass('active')
|
||||||
|
|
||||||
|
selector = this.selector
|
||||||
|
+ '[data-target="' + target + '"],'
|
||||||
|
+ this.selector + '[href="' + target + '"]'
|
||||||
|
|
||||||
|
active = $(selector)
|
||||||
|
.parent('li')
|
||||||
|
.addClass('active')
|
||||||
|
|
||||||
|
if (active.parent('.dropdown-menu').length) {
|
||||||
|
active = active.closest('li.dropdown').addClass('active')
|
||||||
|
}
|
||||||
|
|
||||||
|
active.trigger('activate')
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* SCROLLSPY PLUGIN DEFINITION
|
||||||
|
* =========================== */
|
||||||
|
|
||||||
|
$.fn.scrollspy = function (option) {
|
||||||
|
return this.each(function () {
|
||||||
|
var $this = $(this)
|
||||||
|
, data = $this.data('scrollspy')
|
||||||
|
, options = typeof option == 'object' && option
|
||||||
|
if (!data) $this.data('scrollspy', (data = new ScrollSpy(this, options)))
|
||||||
|
if (typeof option == 'string') data[option]()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
$.fn.scrollspy.Constructor = ScrollSpy
|
||||||
|
|
||||||
|
$.fn.scrollspy.defaults = {
|
||||||
|
offset: 10
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* SCROLLSPY DATA-API
|
||||||
|
* ================== */
|
||||||
|
|
||||||
|
$(window).on('load', function () {
|
||||||
|
$('[data-spy="scroll"]').each(function () {
|
||||||
|
var $spy = $(this)
|
||||||
|
$spy.scrollspy($spy.data())
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
}(window.jQuery);
|
||||||
Vendored
+135
@@ -0,0 +1,135 @@
|
|||||||
|
/* ========================================================
|
||||||
|
* bootstrap-tab.js v2.1.1
|
||||||
|
* http://twitter.github.com/bootstrap/javascript.html#tabs
|
||||||
|
* ========================================================
|
||||||
|
* Copyright 2012 Twitter, Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
* ======================================================== */
|
||||||
|
|
||||||
|
|
||||||
|
!function ($) {
|
||||||
|
|
||||||
|
"use strict"; // jshint ;_;
|
||||||
|
|
||||||
|
|
||||||
|
/* TAB CLASS DEFINITION
|
||||||
|
* ==================== */
|
||||||
|
|
||||||
|
var Tab = function (element) {
|
||||||
|
this.element = $(element)
|
||||||
|
}
|
||||||
|
|
||||||
|
Tab.prototype = {
|
||||||
|
|
||||||
|
constructor: Tab
|
||||||
|
|
||||||
|
, show: function () {
|
||||||
|
var $this = this.element
|
||||||
|
, $ul = $this.closest('ul:not(.dropdown-menu)')
|
||||||
|
, selector = $this.attr('data-target')
|
||||||
|
, previous
|
||||||
|
, $target
|
||||||
|
, e
|
||||||
|
|
||||||
|
if (!selector) {
|
||||||
|
selector = $this.attr('href')
|
||||||
|
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( $this.parent('li').hasClass('active') ) return
|
||||||
|
|
||||||
|
previous = $ul.find('.active a').last()[0]
|
||||||
|
|
||||||
|
e = $.Event('show', {
|
||||||
|
relatedTarget: previous
|
||||||
|
})
|
||||||
|
|
||||||
|
$this.trigger(e)
|
||||||
|
|
||||||
|
if (e.isDefaultPrevented()) return
|
||||||
|
|
||||||
|
$target = $(selector)
|
||||||
|
|
||||||
|
this.activate($this.parent('li'), $ul)
|
||||||
|
this.activate($target, $target.parent(), function () {
|
||||||
|
$this.trigger({
|
||||||
|
type: 'shown'
|
||||||
|
, relatedTarget: previous
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
, activate: function ( element, container, callback) {
|
||||||
|
var $active = container.find('> .active')
|
||||||
|
, transition = callback
|
||||||
|
&& $.support.transition
|
||||||
|
&& $active.hasClass('fade')
|
||||||
|
|
||||||
|
function next() {
|
||||||
|
$active
|
||||||
|
.removeClass('active')
|
||||||
|
.find('> .dropdown-menu > .active')
|
||||||
|
.removeClass('active')
|
||||||
|
|
||||||
|
element.addClass('active')
|
||||||
|
|
||||||
|
if (transition) {
|
||||||
|
element[0].offsetWidth // reflow for transition
|
||||||
|
element.addClass('in')
|
||||||
|
} else {
|
||||||
|
element.removeClass('fade')
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( element.parent('.dropdown-menu') ) {
|
||||||
|
element.closest('li.dropdown').addClass('active')
|
||||||
|
}
|
||||||
|
|
||||||
|
callback && callback()
|
||||||
|
}
|
||||||
|
|
||||||
|
transition ?
|
||||||
|
$active.one($.support.transition.end, next) :
|
||||||
|
next()
|
||||||
|
|
||||||
|
$active.removeClass('in')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* TAB PLUGIN DEFINITION
|
||||||
|
* ===================== */
|
||||||
|
|
||||||
|
$.fn.tab = function ( option ) {
|
||||||
|
return this.each(function () {
|
||||||
|
var $this = $(this)
|
||||||
|
, data = $this.data('tab')
|
||||||
|
if (!data) $this.data('tab', (data = new Tab(this)))
|
||||||
|
if (typeof option == 'string') data[option]()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
$.fn.tab.Constructor = Tab
|
||||||
|
|
||||||
|
|
||||||
|
/* TAB DATA-API
|
||||||
|
* ============ */
|
||||||
|
|
||||||
|
$(function () {
|
||||||
|
$('body').on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
|
||||||
|
e.preventDefault()
|
||||||
|
$(this).tab('show')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
}(window.jQuery);
|
||||||
Vendored
+44
-39
@@ -1,5 +1,5 @@
|
|||||||
/* ===========================================================
|
/* ===========================================================
|
||||||
* bootstrap-tooltip.js v2.0.0
|
* bootstrap-tooltip.js v2.1.1
|
||||||
* http://twitter.github.com/bootstrap/javascript.html#tooltips
|
* http://twitter.github.com/bootstrap/javascript.html#tooltips
|
||||||
* Inspired by the original jQuery.tipsy by Jason Frame
|
* Inspired by the original jQuery.tipsy by Jason Frame
|
||||||
* ===========================================================
|
* ===========================================================
|
||||||
@@ -18,14 +18,16 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
* ========================================================== */
|
* ========================================================== */
|
||||||
|
|
||||||
!function( $ ) {
|
|
||||||
|
|
||||||
"use strict"
|
!function ($) {
|
||||||
|
|
||||||
|
"use strict"; // jshint ;_;
|
||||||
|
|
||||||
|
|
||||||
/* TOOLTIP PUBLIC CLASS DEFINITION
|
/* TOOLTIP PUBLIC CLASS DEFINITION
|
||||||
* =============================== */
|
* =============================== */
|
||||||
|
|
||||||
var Tooltip = function ( element, options ) {
|
var Tooltip = function (element, options) {
|
||||||
this.init('tooltip', element, options)
|
this.init('tooltip', element, options)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,7 +35,7 @@
|
|||||||
|
|
||||||
constructor: Tooltip
|
constructor: Tooltip
|
||||||
|
|
||||||
, init: function ( type, element, options ) {
|
, init: function (type, element, options) {
|
||||||
var eventIn
|
var eventIn
|
||||||
, eventOut
|
, eventOut
|
||||||
|
|
||||||
@@ -42,11 +44,13 @@
|
|||||||
this.options = this.getOptions(options)
|
this.options = this.getOptions(options)
|
||||||
this.enabled = true
|
this.enabled = true
|
||||||
|
|
||||||
if (this.options.trigger != 'manual') {
|
if (this.options.trigger == 'click') {
|
||||||
eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus'
|
this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
|
||||||
|
} else if (this.options.trigger != 'manual') {
|
||||||
|
eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus'
|
||||||
eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur'
|
eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur'
|
||||||
this.$element.on(eventIn, this.options.selector, $.proxy(this.enter, this))
|
this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
|
||||||
this.$element.on(eventOut, this.options.selector, $.proxy(this.leave, this))
|
this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
|
||||||
}
|
}
|
||||||
|
|
||||||
this.options.selector ?
|
this.options.selector ?
|
||||||
@@ -54,7 +58,7 @@
|
|||||||
this.fixTitle()
|
this.fixTitle()
|
||||||
}
|
}
|
||||||
|
|
||||||
, getOptions: function ( options ) {
|
, getOptions: function (options) {
|
||||||
options = $.extend({}, $.fn[this.type].defaults, options, this.$element.data())
|
options = $.extend({}, $.fn[this.type].defaults, options, this.$element.data())
|
||||||
|
|
||||||
if (options.delay && typeof options.delay == 'number') {
|
if (options.delay && typeof options.delay == 'number') {
|
||||||
@@ -67,34 +71,28 @@
|
|||||||
return options
|
return options
|
||||||
}
|
}
|
||||||
|
|
||||||
, enter: function ( e ) {
|
, enter: function (e) {
|
||||||
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
|
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
|
||||||
|
|
||||||
if (!self.options.delay || !self.options.delay.show) {
|
if (!self.options.delay || !self.options.delay.show) return self.show()
|
||||||
self.show()
|
|
||||||
} else {
|
clearTimeout(this.timeout)
|
||||||
self.hoverState = 'in'
|
self.hoverState = 'in'
|
||||||
setTimeout(function() {
|
this.timeout = setTimeout(function() {
|
||||||
if (self.hoverState == 'in') {
|
if (self.hoverState == 'in') self.show()
|
||||||
self.show()
|
}, self.options.delay.show)
|
||||||
}
|
|
||||||
}, self.options.delay.show)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
, leave: function ( e ) {
|
, leave: function (e) {
|
||||||
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
|
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
|
||||||
|
|
||||||
if (!self.options.delay || !self.options.delay.hide) {
|
if (this.timeout) clearTimeout(this.timeout)
|
||||||
self.hide()
|
if (!self.options.delay || !self.options.delay.hide) return self.hide()
|
||||||
} else {
|
|
||||||
self.hoverState = 'out'
|
self.hoverState = 'out'
|
||||||
setTimeout(function() {
|
this.timeout = setTimeout(function() {
|
||||||
if (self.hoverState == 'out') {
|
if (self.hoverState == 'out') self.hide()
|
||||||
self.hide()
|
}, self.options.delay.hide)
|
||||||
}
|
|
||||||
}, self.options.delay.hide)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
, show: function () {
|
, show: function () {
|
||||||
@@ -154,7 +152,9 @@
|
|||||||
|
|
||||||
, setContent: function () {
|
, setContent: function () {
|
||||||
var $tip = this.tip()
|
var $tip = this.tip()
|
||||||
$tip.find('.tooltip-inner').html(this.getTitle())
|
, title = this.getTitle()
|
||||||
|
|
||||||
|
$tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
|
||||||
$tip.removeClass('fade in top bottom left right')
|
$tip.removeClass('fade in top bottom left right')
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -178,6 +178,8 @@
|
|||||||
$.support.transition && this.$tip.hasClass('fade') ?
|
$.support.transition && this.$tip.hasClass('fade') ?
|
||||||
removeWithAnimation() :
|
removeWithAnimation() :
|
||||||
$tip.remove()
|
$tip.remove()
|
||||||
|
|
||||||
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
, fixTitle: function () {
|
, fixTitle: function () {
|
||||||
@@ -206,8 +208,6 @@
|
|||||||
title = $e.attr('data-original-title')
|
title = $e.attr('data-original-title')
|
||||||
|| (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
|
|| (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
|
||||||
|
|
||||||
title = title.toString().replace(/(^\s*|\s*$)/, "")
|
|
||||||
|
|
||||||
return title
|
return title
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -239,6 +239,10 @@
|
|||||||
this[this.tip().hasClass('in') ? 'hide' : 'show']()
|
this[this.tip().hasClass('in') ? 'hide' : 'show']()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
, destroy: function () {
|
||||||
|
this.hide().$element.off('.' + this.type).removeData(this.type)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -259,12 +263,13 @@
|
|||||||
|
|
||||||
$.fn.tooltip.defaults = {
|
$.fn.tooltip.defaults = {
|
||||||
animation: true
|
animation: true
|
||||||
, delay: 0
|
|
||||||
, selector: false
|
|
||||||
, placement: 'top'
|
, placement: 'top'
|
||||||
|
, selector: false
|
||||||
|
, template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
|
||||||
, trigger: 'hover'
|
, trigger: 'hover'
|
||||||
, title: ''
|
, title: ''
|
||||||
, template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
|
, delay: 0
|
||||||
|
, html: true
|
||||||
}
|
}
|
||||||
|
|
||||||
}( window.jQuery )
|
}(window.jQuery);
|
||||||
Vendored
+28
-19
@@ -1,5 +1,5 @@
|
|||||||
/* ===================================================
|
/* ===================================================
|
||||||
* bootstrap-transition.js v2.0.0
|
* bootstrap-transition.js v2.1.1
|
||||||
* http://twitter.github.com/bootstrap/javascript.html#transitions
|
* http://twitter.github.com/bootstrap/javascript.html#transitions
|
||||||
* ===================================================
|
* ===================================================
|
||||||
* Copyright 2012 Twitter, Inc.
|
* Copyright 2012 Twitter, Inc.
|
||||||
@@ -17,35 +17,44 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
* ========================================================== */
|
* ========================================================== */
|
||||||
|
|
||||||
!function( $ ) {
|
|
||||||
|
!function ($) {
|
||||||
|
|
||||||
$(function () {
|
$(function () {
|
||||||
|
|
||||||
"use strict"
|
"use strict"; // jshint ;_;
|
||||||
|
|
||||||
/* CSS TRANSITION SUPPORT (https://gist.github.com/373874)
|
|
||||||
|
/* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
|
||||||
* ======================================================= */
|
* ======================================================= */
|
||||||
|
|
||||||
$.support.transition = (function () {
|
$.support.transition = (function () {
|
||||||
var thisBody = document.body || document.documentElement
|
|
||||||
, thisStyle = thisBody.style
|
|
||||||
, support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined
|
|
||||||
|
|
||||||
return support && {
|
var transitionEnd = (function () {
|
||||||
end: (function () {
|
|
||||||
var transitionEnd = "TransitionEnd"
|
var el = document.createElement('bootstrap')
|
||||||
if ( $.browser.webkit ) {
|
, transEndEventNames = {
|
||||||
transitionEnd = "webkitTransitionEnd"
|
'WebkitTransition' : 'webkitTransitionEnd'
|
||||||
} else if ( $.browser.mozilla ) {
|
, 'MozTransition' : 'transitionend'
|
||||||
transitionEnd = "transitionend"
|
, 'OTransition' : 'oTransitionEnd otransitionend'
|
||||||
} else if ( $.browser.opera ) {
|
, 'transition' : 'transitionend'
|
||||||
transitionEnd = "oTransitionEnd"
|
}
|
||||||
|
, name
|
||||||
|
|
||||||
|
for (name in transEndEventNames){
|
||||||
|
if (el.style[name] !== undefined) {
|
||||||
|
return transEndEventNames[name]
|
||||||
}
|
}
|
||||||
return transitionEnd
|
}
|
||||||
}())
|
|
||||||
|
}())
|
||||||
|
|
||||||
|
return transitionEnd && {
|
||||||
|
end: transitionEnd
|
||||||
}
|
}
|
||||||
|
|
||||||
})()
|
})()
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
}( window.jQuery )
|
}(window.jQuery);
|
||||||
Vendored
+75
-46
@@ -1,5 +1,5 @@
|
|||||||
/* =============================================================
|
/* =============================================================
|
||||||
* bootstrap-typeahead.js v2.0.1
|
* bootstrap-typeahead.js v2.1.1
|
||||||
* http://twitter.github.com/bootstrap/javascript.html#typeahead
|
* http://twitter.github.com/bootstrap/javascript.html#typeahead
|
||||||
* =============================================================
|
* =============================================================
|
||||||
* Copyright 2012 Twitter, Inc.
|
* Copyright 2012 Twitter, Inc.
|
||||||
@@ -17,16 +17,22 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
* ============================================================ */
|
* ============================================================ */
|
||||||
|
|
||||||
!function( $ ){
|
|
||||||
|
|
||||||
"use strict"
|
!function($){
|
||||||
|
|
||||||
var Typeahead = function ( element, options ) {
|
"use strict"; // jshint ;_;
|
||||||
|
|
||||||
|
|
||||||
|
/* TYPEAHEAD PUBLIC CLASS DEFINITION
|
||||||
|
* ================================= */
|
||||||
|
|
||||||
|
var Typeahead = function (element, options) {
|
||||||
this.$element = $(element)
|
this.$element = $(element)
|
||||||
this.options = $.extend({}, $.fn.typeahead.defaults, options)
|
this.options = $.extend({}, $.fn.typeahead.defaults, options)
|
||||||
this.matcher = this.options.matcher || this.matcher
|
this.matcher = this.options.matcher || this.matcher
|
||||||
this.sorter = this.options.sorter || this.sorter
|
this.sorter = this.options.sorter || this.sorter
|
||||||
this.highlighter = this.options.highlighter || this.highlighter
|
this.highlighter = this.options.highlighter || this.highlighter
|
||||||
|
this.updater = this.options.updater || this.updater
|
||||||
this.$menu = $(this.options.menu).appendTo('body')
|
this.$menu = $(this.options.menu).appendTo('body')
|
||||||
this.source = this.options.source
|
this.source = this.options.source
|
||||||
this.shown = false
|
this.shown = false
|
||||||
@@ -39,10 +45,16 @@
|
|||||||
|
|
||||||
, select: function () {
|
, select: function () {
|
||||||
var val = this.$menu.find('.active').attr('data-value')
|
var val = this.$menu.find('.active').attr('data-value')
|
||||||
this.$element.val(val)
|
this.$element
|
||||||
|
.val(this.updater(val))
|
||||||
|
.change()
|
||||||
return this.hide()
|
return this.hide()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
, updater: function (item) {
|
||||||
|
return item
|
||||||
|
}
|
||||||
|
|
||||||
, show: function () {
|
, show: function () {
|
||||||
var pos = $.extend({}, this.$element.offset(), {
|
var pos = $.extend({}, this.$element.offset(), {
|
||||||
height: this.$element[0].offsetHeight
|
height: this.$element[0].offsetHeight
|
||||||
@@ -65,18 +77,24 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
, lookup: function (event) {
|
, lookup: function (event) {
|
||||||
var that = this
|
var items
|
||||||
, items
|
|
||||||
, q
|
|
||||||
|
|
||||||
this.query = this.$element.val()
|
this.query = this.$element.val()
|
||||||
|
|
||||||
if (!this.query) {
|
if (!this.query || this.query.length < this.options.minLength) {
|
||||||
return this.shown ? this.hide() : this
|
return this.shown ? this.hide() : this
|
||||||
}
|
}
|
||||||
|
|
||||||
items = $.grep(this.source, function (item) {
|
items = $.isFunction(this.source) ? this.source(this.query, $.proxy(this.process, this)) : this.source
|
||||||
if (that.matcher(item)) return item
|
|
||||||
|
return items ? this.process(items) : this
|
||||||
|
}
|
||||||
|
|
||||||
|
, process: function (items) {
|
||||||
|
var that = this
|
||||||
|
|
||||||
|
items = $.grep(items, function (item) {
|
||||||
|
return that.matcher(item)
|
||||||
})
|
})
|
||||||
|
|
||||||
items = this.sorter(items)
|
items = this.sorter(items)
|
||||||
@@ -108,7 +126,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
, highlighter: function (item) {
|
, highlighter: function (item) {
|
||||||
return item.replace(new RegExp('(' + this.query + ')', 'ig'), function ($1, match) {
|
var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&')
|
||||||
|
return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
|
||||||
return '<strong>' + match + '</strong>'
|
return '<strong>' + match + '</strong>'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -155,8 +174,8 @@
|
|||||||
.on('keypress', $.proxy(this.keypress, this))
|
.on('keypress', $.proxy(this.keypress, this))
|
||||||
.on('keyup', $.proxy(this.keyup, this))
|
.on('keyup', $.proxy(this.keyup, this))
|
||||||
|
|
||||||
if ($.browser.webkit || $.browser.msie) {
|
if ($.browser.chrome || $.browser.webkit || $.browser.msie) {
|
||||||
this.$element.on('keydown', $.proxy(this.keypress, this))
|
this.$element.on('keydown', $.proxy(this.keydown, this))
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$menu
|
this.$menu
|
||||||
@@ -164,33 +183,7 @@
|
|||||||
.on('mouseenter', 'li', $.proxy(this.mouseenter, this))
|
.on('mouseenter', 'li', $.proxy(this.mouseenter, this))
|
||||||
}
|
}
|
||||||
|
|
||||||
, keyup: function (e) {
|
, move: function (e) {
|
||||||
e.stopPropagation()
|
|
||||||
e.preventDefault()
|
|
||||||
|
|
||||||
switch(e.keyCode) {
|
|
||||||
case 40: // down arrow
|
|
||||||
case 38: // up arrow
|
|
||||||
break
|
|
||||||
|
|
||||||
case 9: // tab
|
|
||||||
case 13: // enter
|
|
||||||
if (!this.shown) return
|
|
||||||
this.select()
|
|
||||||
break
|
|
||||||
|
|
||||||
case 27: // escape
|
|
||||||
this.hide()
|
|
||||||
break
|
|
||||||
|
|
||||||
default:
|
|
||||||
this.lookup()
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
, keypress: function (e) {
|
|
||||||
e.stopPropagation()
|
|
||||||
if (!this.shown) return
|
if (!this.shown) return
|
||||||
|
|
||||||
switch(e.keyCode) {
|
switch(e.keyCode) {
|
||||||
@@ -210,12 +203,47 @@
|
|||||||
this.next()
|
this.next()
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
|
e.stopPropagation()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
, keydown: function (e) {
|
||||||
|
this.suppressKeyPressRepeat = !~$.inArray(e.keyCode, [40,38,9,13,27])
|
||||||
|
this.move(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
, keypress: function (e) {
|
||||||
|
if (this.suppressKeyPressRepeat) return
|
||||||
|
this.move(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
, keyup: function (e) {
|
||||||
|
switch(e.keyCode) {
|
||||||
|
case 40: // down arrow
|
||||||
|
case 38: // up arrow
|
||||||
|
break
|
||||||
|
|
||||||
|
case 9: // tab
|
||||||
|
case 13: // enter
|
||||||
|
if (!this.shown) return
|
||||||
|
this.select()
|
||||||
|
break
|
||||||
|
|
||||||
|
case 27: // escape
|
||||||
|
if (!this.shown) return
|
||||||
|
this.hide()
|
||||||
|
break
|
||||||
|
|
||||||
|
default:
|
||||||
|
this.lookup()
|
||||||
|
}
|
||||||
|
|
||||||
|
e.stopPropagation()
|
||||||
|
e.preventDefault()
|
||||||
|
}
|
||||||
|
|
||||||
, blur: function (e) {
|
, blur: function (e) {
|
||||||
var that = this
|
var that = this
|
||||||
e.stopPropagation()
|
|
||||||
e.preventDefault()
|
|
||||||
setTimeout(function () { that.hide() }, 150)
|
setTimeout(function () { that.hide() }, 150)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -236,7 +264,7 @@
|
|||||||
/* TYPEAHEAD PLUGIN DEFINITION
|
/* TYPEAHEAD PLUGIN DEFINITION
|
||||||
* =========================== */
|
* =========================== */
|
||||||
|
|
||||||
$.fn.typeahead = function ( option ) {
|
$.fn.typeahead = function (option) {
|
||||||
return this.each(function () {
|
return this.each(function () {
|
||||||
var $this = $(this)
|
var $this = $(this)
|
||||||
, data = $this.data('typeahead')
|
, data = $this.data('typeahead')
|
||||||
@@ -251,12 +279,13 @@
|
|||||||
, items: 8
|
, items: 8
|
||||||
, menu: '<ul class="typeahead dropdown-menu"></ul>'
|
, menu: '<ul class="typeahead dropdown-menu"></ul>'
|
||||||
, item: '<li><a href="#"></a></li>'
|
, item: '<li><a href="#"></a></li>'
|
||||||
|
, minLength: 1
|
||||||
}
|
}
|
||||||
|
|
||||||
$.fn.typeahead.Constructor = Typeahead
|
$.fn.typeahead.Constructor = Typeahead
|
||||||
|
|
||||||
|
|
||||||
/* TYPEAHEAD DATA-API
|
/* TYPEAHEAD DATA-API
|
||||||
* ================== */
|
* ================== */
|
||||||
|
|
||||||
$(function () {
|
$(function () {
|
||||||
@@ -268,4 +297,4 @@
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
}( window.jQuery );
|
}(window.jQuery);
|
||||||
File renamed without changes.
File renamed without changes.
@@ -1,6 +1,12 @@
|
|||||||
@import "compass";
|
@import "compass";
|
||||||
@import "compass_twitter_bootstrap";
|
@import "compass/reset";
|
||||||
@import "compass_twitter_bootstrap_responsive";
|
|
||||||
|
// Fixes image path for icons from sass-bootstrap
|
||||||
|
$iconSpritePath: generated-image-url("glyphicons-halflings.png");
|
||||||
|
$iconWhiteSpritePath: generated-image-url("glyphicons-halflings-white.png");
|
||||||
|
|
||||||
|
@import "bootstrap";
|
||||||
|
@import "bootstrap-responsive";
|
||||||
|
|
||||||
body {
|
body {
|
||||||
|
|
||||||
Whitespace-only changes.
Whitespace-only changes.
File diff suppressed because it is too large.
Load diff
+4
-4
@@ -4,10 +4,10 @@
|
|||||||
<title>{%block title%}BBS{%endblock%}</title>
|
<title>{%block title%}BBS{%endblock%}</title>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<link rel="stylesheet" href="{{ STATIC_URL }}gaute/stylesheets/screen.css" type="text/css" media="screen, projection">
|
<link rel="stylesheet" href="{{ STATIC_URL }}stylesheets/screen.css" type="text/css" media="screen, projection">
|
||||||
<link rel="stylesheet" href="{{ STATIC_URL }}gaute/stylesheets/print.css" type="text/css" media="print">
|
<link rel="stylesheet" href="{{ STATIC_URL }}stylesheets/print.css" type="text/css" media="print">
|
||||||
<!--[if lt IE 8]>
|
<!--[if lt IE 8]>
|
||||||
<link rel="stylesheet" href="{{ STATIC_URL }}gaute/stylesheets/ie.css" type="text/css" media="screen, projection">
|
<link rel="stylesheet" href="{{ STATIC_URL }}stylesheets/ie.css" type="text/css" media="screen, projection">
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
{%block headinc %}
|
{%block headinc %}
|
||||||
{%endblock%}
|
{%endblock%}
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
<div id="footer" class="row-fluid">
|
<div id="footer" class="row-fluid">
|
||||||
<div class="span12">
|
<div class="span12">
|
||||||
{%block footer %}
|
{%block footer %}
|
||||||
<img src="{{ STATIC_URL }}gaute/img/edb_brick.png" alt="EDB" />
|
<img src="{{ STATIC_URL }}img/edb_brick.png" alt="EDB" />
|
||||||
{%endblock%}
|
{%endblock%}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
<section id="customer" class="row-fluid">
|
<section id="customer" class="row-fluid">
|
||||||
<h2>Hvem skal sette inn penger?</h2>
|
<h2>Hvem skal sette inn penger?</h2>
|
||||||
<!-- Typeahead customer field -->
|
<!-- Typeahead customer field -->
|
||||||
<input name="customer_name" id="id_customer_typeahead" value="" data-provide="typeahead" data-source="{{users_js}}" />
|
<input name="customer_name" id="id_customer_typeahead" type="text" value="" data-provide="typeahead" data-source="{{users_js}}" />
|
||||||
<!-- Actual customer select field (hidden) -->
|
<!-- Actual customer select field (hidden) -->
|
||||||
<div style="display:none;">{{form.user }}</div>
|
<div style="display:none;">{{form.user }}</div>
|
||||||
<ul class="well">
|
<ul class="well">
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
{% if user.get_profile.image %}
|
{% if user.get_profile.image %}
|
||||||
<img class="profile" src="{{ user.get_profile.image }}" alt="Profile picture"/><br />
|
<img class="profile" src="{{ user.get_profile.image }}" alt="Profile picture"/><br />
|
||||||
{% else %}
|
{% else %}
|
||||||
<img class="profile" src="{{ STATIC_URL }}gaute/img/unknown_person.png" alt="Profile picture" /><br />
|
<img class="profile" src="{{ STATIC_URL }}img/unknown_person.png" alt="Profile picture" /><br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<span class="name">{{ user.first_name }} {{ user.last_name|slice:":1"}}</span><br />
|
<span class="name">{{ user.first_name }} {{ user.last_name|slice:":1"}}</span><br />
|
||||||
<span class="balance">{{ user.get_profile.balance }}</span>
|
<span class="balance">{{ user.get_profile.balance }}</span>
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
<nav class="navbar">
|
<nav class="navbar navbar-inverse">
|
||||||
<div class="navbar-inner">
|
<div class="navbar-inner">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<!-- .btn-navbar is used as the toggle for collapsed navbar content -->
|
<!-- .btn-navbar is used as the toggle for collapsed navbar content -->
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<form id="order" method="post" autocomplete="off">
|
<form id="order" class="form-stacked" method="post" autocomplete="off">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<!-- Formset validation fields -->
|
<!-- Formset validation fields -->
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
<div class="span12">
|
<div class="span12">
|
||||||
<h2 title="Sortert etter hvem som kjøpte noe sist.">Hvem kjøper?</h2>
|
<h2 title="Sortert etter hvem som kjøpte noe sist.">Hvem kjøper?</h2>
|
||||||
<!-- Typeahead customer field -->
|
<!-- Typeahead customer field -->
|
||||||
<input name="customer_name" id="id_customer_typeahead" value="" data-provide="typeahead" data-source="{{users_js}}" />
|
<input name="customer_name" type="text" id="id_customer_typeahead" value="" data-provide="typeahead" data-source="{{users_js}}" />
|
||||||
<!-- Actual customer select field (hidden) -->
|
<!-- Actual customer select field (hidden) -->
|
||||||
<div style="display:none;">{{orderform.customer }}</div>
|
<div style="display:none;">{{orderform.customer }}</div>
|
||||||
<ul class="well">
|
<ul class="well">
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
{% if user.get_profile.image %}
|
{% if user.get_profile.image %}
|
||||||
<img class="profile" src="{{ user.get_profile.image }}" alt="Profile picture" /><br />
|
<img class="profile" src="{{ user.get_profile.image }}" alt="Profile picture" /><br />
|
||||||
{% else %}
|
{% else %}
|
||||||
<img class="profile" src="{{ STATIC_URL }}gaute/img/unknown_person.png" alt="Profile picture" /><br />
|
<img class="profile" src="{{ STATIC_URL }}img/unknown_person.png" alt="Profile picture" /><br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<span class="name">{{ user.first_name }} {{ user.last_name|slice:":1"}}</span><br />
|
<span class="name">{{ user.first_name }} {{ user.last_name|slice:":1"}}</span><br />
|
||||||
<span class="balance">{{ user.get_profile.balance }}</span>
|
<span class="balance">{{ user.get_profile.balance }}</span>
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
{% if product.image %}
|
{% if product.image %}
|
||||||
<img class="product" src="{{ product.image.url }}" /><br />
|
<img class="product" src="{{ product.image.url }}" /><br />
|
||||||
{% else %}
|
{% else %}
|
||||||
<img class="product" src="{{ STATIC_URL }}gaute/img/product.png" /><br />
|
<img class="product" src="{{ STATIC_URL }}img/product.png" /><br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<span class="name">{{ product.name }}</span> - <span class="sale_price_int">{{product.sale_price_int|floatformat:0}}</span>
|
<span class="name">{{ product.name }}</span> - <span class="sale_price_int">{{product.sale_price_int|floatformat:0}}</span>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
Reference in new issue
Block a user