1.1 --- a/bootstrap-source/bootstrap-3.0.3/js/modal.js Sat Jan 18 12:34:36 2014 +0100
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,246 +0,0 @@
1.4 -/* ========================================================================
1.5 - * Bootstrap: modal.js v3.0.3
1.6 - * http://getbootstrap.com/javascript/#modals
1.7 - * ========================================================================
1.8 - * Copyright 2013 Twitter, Inc.
1.9 - *
1.10 - * Licensed under the Apache License, Version 2.0 (the "License");
1.11 - * you may not use this file except in compliance with the License.
1.12 - * You may obtain a copy of the License at
1.13 - *
1.14 - * http://www.apache.org/licenses/LICENSE-2.0
1.15 - *
1.16 - * Unless required by applicable law or agreed to in writing, software
1.17 - * distributed under the License is distributed on an "AS IS" BASIS,
1.18 - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1.19 - * See the License for the specific language governing permissions and
1.20 - * limitations under the License.
1.21 - * ======================================================================== */
1.22 -
1.23 -
1.24 -+function ($) { "use strict";
1.25 -
1.26 - // MODAL CLASS DEFINITION
1.27 - // ======================
1.28 -
1.29 - var Modal = function (element, options) {
1.30 - this.options = options
1.31 - this.$element = $(element)
1.32 - this.$backdrop =
1.33 - this.isShown = null
1.34 -
1.35 - if (this.options.remote) this.$element.load(this.options.remote)
1.36 - }
1.37 -
1.38 - Modal.DEFAULTS = {
1.39 - backdrop: true
1.40 - , keyboard: true
1.41 - , show: true
1.42 - }
1.43 -
1.44 - Modal.prototype.toggle = function (_relatedTarget) {
1.45 - return this[!this.isShown ? 'show' : 'hide'](_relatedTarget)
1.46 - }
1.47 -
1.48 - Modal.prototype.show = function (_relatedTarget) {
1.49 - var that = this
1.50 - var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
1.51 -
1.52 - this.$element.trigger(e)
1.53 -
1.54 - if (this.isShown || e.isDefaultPrevented()) return
1.55 -
1.56 - this.isShown = true
1.57 -
1.58 - this.escape()
1.59 -
1.60 - this.$element.on('click.dismiss.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
1.61 -
1.62 - this.backdrop(function () {
1.63 - var transition = $.support.transition && that.$element.hasClass('fade')
1.64 -
1.65 - if (!that.$element.parent().length) {
1.66 - that.$element.appendTo(document.body) // don't move modals dom position
1.67 - }
1.68 -
1.69 - that.$element.show()
1.70 -
1.71 - if (transition) {
1.72 - that.$element[0].offsetWidth // force reflow
1.73 - }
1.74 -
1.75 - that.$element
1.76 - .addClass('in')
1.77 - .attr('aria-hidden', false)
1.78 -
1.79 - that.enforceFocus()
1.80 -
1.81 - var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
1.82 -
1.83 - transition ?
1.84 - that.$element.find('.modal-dialog') // wait for modal to slide in
1.85 - .one($.support.transition.end, function () {
1.86 - that.$element.focus().trigger(e)
1.87 - })
1.88 - .emulateTransitionEnd(300) :
1.89 - that.$element.focus().trigger(e)
1.90 - })
1.91 - }
1.92 -
1.93 - Modal.prototype.hide = function (e) {
1.94 - if (e) e.preventDefault()
1.95 -
1.96 - e = $.Event('hide.bs.modal')
1.97 -
1.98 - this.$element.trigger(e)
1.99 -
1.100 - if (!this.isShown || e.isDefaultPrevented()) return
1.101 -
1.102 - this.isShown = false
1.103 -
1.104 - this.escape()
1.105 -
1.106 - $(document).off('focusin.bs.modal')
1.107 -
1.108 - this.$element
1.109 - .removeClass('in')
1.110 - .attr('aria-hidden', true)
1.111 - .off('click.dismiss.modal')
1.112 -
1.113 - $.support.transition && this.$element.hasClass('fade') ?
1.114 - this.$element
1.115 - .one($.support.transition.end, $.proxy(this.hideModal, this))
1.116 - .emulateTransitionEnd(300) :
1.117 - this.hideModal()
1.118 - }
1.119 -
1.120 - Modal.prototype.enforceFocus = function () {
1.121 - $(document)
1.122 - .off('focusin.bs.modal') // guard against infinite focus loop
1.123 - .on('focusin.bs.modal', $.proxy(function (e) {
1.124 - if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
1.125 - this.$element.focus()
1.126 - }
1.127 - }, this))
1.128 - }
1.129 -
1.130 - Modal.prototype.escape = function () {
1.131 - if (this.isShown && this.options.keyboard) {
1.132 - this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) {
1.133 - e.which == 27 && this.hide()
1.134 - }, this))
1.135 - } else if (!this.isShown) {
1.136 - this.$element.off('keyup.dismiss.bs.modal')
1.137 - }
1.138 - }
1.139 -
1.140 - Modal.prototype.hideModal = function () {
1.141 - var that = this
1.142 - this.$element.hide()
1.143 - this.backdrop(function () {
1.144 - that.removeBackdrop()
1.145 - that.$element.trigger('hidden.bs.modal')
1.146 - })
1.147 - }
1.148 -
1.149 - Modal.prototype.removeBackdrop = function () {
1.150 - this.$backdrop && this.$backdrop.remove()
1.151 - this.$backdrop = null
1.152 - }
1.153 -
1.154 - Modal.prototype.backdrop = function (callback) {
1.155 - var that = this
1.156 - var animate = this.$element.hasClass('fade') ? 'fade' : ''
1.157 -
1.158 - if (this.isShown && this.options.backdrop) {
1.159 - var doAnimate = $.support.transition && animate
1.160 -
1.161 - this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
1.162 - .appendTo(document.body)
1.163 -
1.164 - this.$element.on('click.dismiss.modal', $.proxy(function (e) {
1.165 - if (e.target !== e.currentTarget) return
1.166 - this.options.backdrop == 'static'
1.167 - ? this.$element[0].focus.call(this.$element[0])
1.168 - : this.hide.call(this)
1.169 - }, this))
1.170 -
1.171 - if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
1.172 -
1.173 - this.$backdrop.addClass('in')
1.174 -
1.175 - if (!callback) return
1.176 -
1.177 - doAnimate ?
1.178 - this.$backdrop
1.179 - .one($.support.transition.end, callback)
1.180 - .emulateTransitionEnd(150) :
1.181 - callback()
1.182 -
1.183 - } else if (!this.isShown && this.$backdrop) {
1.184 - this.$backdrop.removeClass('in')
1.185 -
1.186 - $.support.transition && this.$element.hasClass('fade')?
1.187 - this.$backdrop
1.188 - .one($.support.transition.end, callback)
1.189 - .emulateTransitionEnd(150) :
1.190 - callback()
1.191 -
1.192 - } else if (callback) {
1.193 - callback()
1.194 - }
1.195 - }
1.196 -
1.197 -
1.198 - // MODAL PLUGIN DEFINITION
1.199 - // =======================
1.200 -
1.201 - var old = $.fn.modal
1.202 -
1.203 - $.fn.modal = function (option, _relatedTarget) {
1.204 - return this.each(function () {
1.205 - var $this = $(this)
1.206 - var data = $this.data('bs.modal')
1.207 - var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
1.208 -
1.209 - if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
1.210 - if (typeof option == 'string') data[option](_relatedTarget)
1.211 - else if (options.show) data.show(_relatedTarget)
1.212 - })
1.213 - }
1.214 -
1.215 - $.fn.modal.Constructor = Modal
1.216 -
1.217 -
1.218 - // MODAL NO CONFLICT
1.219 - // =================
1.220 -
1.221 - $.fn.modal.noConflict = function () {
1.222 - $.fn.modal = old
1.223 - return this
1.224 - }
1.225 -
1.226 -
1.227 - // MODAL DATA-API
1.228 - // ==============
1.229 -
1.230 - $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
1.231 - var $this = $(this)
1.232 - var href = $this.attr('href')
1.233 - var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
1.234 - var option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
1.235 -
1.236 - e.preventDefault()
1.237 -
1.238 - $target
1.239 - .modal(option, this)
1.240 - .one('hide', function () {
1.241 - $this.is(':visible') && $this.focus()
1.242 - })
1.243 - })
1.244 -
1.245 - $(document)
1.246 - .on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
1.247 - .on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
1.248 -
1.249 -}(jQuery);