Merge branch 'fixes' into main/rendor-staging
[ryzomcore.git] / web / public_php / ams / js / bootstrap-alert.js
blob57890a9a281aa54d2e1a306bdaf3b793b476befa
1 /* ==========================================================
2  * bootstrap-alert.js v2.0.4
3  * http://twitter.github.com/bootstrap/javascript.html#alerts
4  * ==========================================================
5  * Copyright 2012 Twitter, Inc.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ========================================================== */
21 !function ($) {
23   "use strict"; // jshint ;_;
26  /* ALERT CLASS DEFINITION
27   * ====================== */
29   var dismiss = '[data-dismiss="alert"]'
30     , Alert = function (el) {
31         $(el).on('click', dismiss, this.close)
32       }
34   Alert.prototype.close = function (e) {
35     var $this = $(this)
36       , selector = $this.attr('data-target')
37       , $parent
39     if (!selector) {
40       selector = $this.attr('href')
41       selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
42     }
44     $parent = $(selector)
46     e && e.preventDefault()
48     $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
50     $parent.trigger(e = $.Event('close'))
52     if (e.isDefaultPrevented()) return
54     $parent.removeClass('in')
56     function removeElement() {
57       $parent
58         .trigger('closed')
59         .remove()
60     }
62     $.support.transition && $parent.hasClass('fade') ?
63       $parent.on($.support.transition.end, removeElement) :
64       removeElement()
65   }
68  /* ALERT PLUGIN DEFINITION
69   * ======================= */
71   $.fn.alert = function (option) {
72     return this.each(function () {
73       var $this = $(this)
74         , data = $this.data('alert')
75       if (!data) $this.data('alert', (data = new Alert(this)))
76       if (typeof option == 'string') data[option].call($this)
77     })
78   }
80   $.fn.alert.Constructor = Alert
83  /* ALERT DATA-API
84   * ============== */
86   $(function () {
87     $('body').on('click.alert.data-api', dismiss, Alert.prototype.close)
88   })
90 }(window.jQuery);