vendor/assets/javascripts/twitter/bootstrap/popover.js in bootstrap-sass-rails-1.4.0.3 vs vendor/assets/javascripts/twitter/bootstrap/popover.js in bootstrap-sass-rails-2.0.0.0

- old
+ new

@@ -1,10 +1,10 @@ /* =========================================================== - * bootstrap-popover.js v1.4.0 - * http://twitter.github.com/bootstrap/javascript.html#popover + * bootstrap-popover.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#popovers * =========================================================== - * Copyright 2011 Twitter, Inc. + * 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 * @@ -21,70 +21,75 @@ !function( $ ) { "use strict" var Popover = function ( element, options ) { - this.$element = $(element) - this.options = options - this.enabled = true - this.fixTitle() + this.init('popover', element, options) } - /* NOTE: POPOVER EXTENDS BOOTSTRAP-TWIPSY.js - ========================================= */ + /* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js + ========================================== */ - Popover.prototype = $.extend({}, $.fn.twipsy.Twipsy.prototype, { + Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, { - setContent: function () { + constructor: Popover + + , setContent: function () { var $tip = this.tip() - $tip.find('.title')[this.options.html ? 'html' : 'text'](this.getTitle()) - $tip.find('.content > *')[this.options.html ? 'html' : 'text'](this.getContent()) - $tip[0].className = 'popover' + , title = this.getTitle() + , content = this.getContent() + + $tip.find('.popover-title')[ $.type(title) == 'object' ? 'append' : 'html' ](title) + $tip.find('.popover-content > *')[ $.type(content) == 'object' ? 'append' : 'html' ](content) + + $tip.removeClass('fade top bottom left right in') } , hasContent: function () { return this.getTitle() || this.getContent() } , getContent: function () { var content - , $e = this.$element - , o = this.options + , $e = this.$element + , o = this.options - if (typeof this.options.content == 'string') { - content = $e.attr(this.options.content) - } else if (typeof this.options.content == 'function') { - content = this.options.content.call(this.$element[0]) - } + content = $e.attr('data-content') + || (typeof o.content == 'function' ? o.content.call($e[0]) : o.content) + content = content.toString().replace(/(^\s*|\s*$)/, "") + return content } , tip: function() { if (!this.$tip) { - this.$tip = $('<div class="popover" />') - .html(this.options.template) + this.$tip = $(this.options.template) } return this.$tip } }) /* POPOVER PLUGIN DEFINITION * ======================= */ - $.fn.popover = function (options) { - if (typeof options == 'object') options = $.extend({}, $.fn.popover.defaults, options) - $.fn.twipsy.initWith.call(this, options, Popover, 'popover') - return this + $.fn.popover = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('popover') + , options = typeof option == 'object' && option + if (!data) $this.data('popover', (data = new Popover(this, options))) + if (typeof option == 'string') data[option]() + }) } - $.fn.popover.defaults = $.extend({} , $.fn.twipsy.defaults, { + $.fn.popover.Constructor = Popover + + $.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, { placement: 'right' - , content: 'data-content' - , template: '<div class="arrow"></div><div class="inner"><h3 class="title"></h3><div class="content"><p></p></div></div>' + , 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>' }) - $.fn.twipsy.rejectAttrOptions.push( 'content' ) - -}( window.jQuery || window.ender ); +}( window.jQuery )