Skip to content

Commit

Permalink
change hella js... broke all the tests. i <3 wip
Browse files Browse the repository at this point in the history
  • Loading branch information
fat committed Sep 12, 2011
1 parent d9cbcfc commit 173be3f
Show file tree
Hide file tree
Showing 7 changed files with 366 additions and 207 deletions.
6 changes: 0 additions & 6 deletions docs/assets/js/application.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
$(document).ready(function(){

// Dropdown example for topbar nav
// ===============================

$('body').dropdown() // catch any dropdowns on the page


// Scrollspy
// =========

Expand Down
2 changes: 1 addition & 1 deletion docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1233,7 +1233,7 @@ <h1>Navigation</h1>
</div>
<h2>Fixed topbar</h2>
<div class="topbar-wrapper" style="z-index: 5;">
<div class="topbar">
<div class="topbar" data-dropdown>
<div class="topbar-inner">
<div class="container">
<h3><a href="#">Project Name</a></h3>
Expand Down
293 changes: 202 additions & 91 deletions docs/javascript.html

Large diffs are not rendered by default.

11 changes: 6 additions & 5 deletions js/bootstrap-dropdown.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,22 +20,23 @@

(function( $ ){

var selector = 'a.menu, .dropdown-toggle'
var d = 'a.menu, .dropdown-toggle'

function clearMenus() {
$(selector).parent('li').removeClass('open')
$(d).parent('li').removeClass('open')
}

$(function () {
$('body').bind("click", clearMenus)
$('html').bind("click", clearMenus)
$('body').dropdown( '[data-dropdown] a.menu, [data-dropdown] .dropdown-toggle' )
})

/* DROPDOWN PLUGIN DEFINITION
* ========================== */

$.fn.dropdown = function ( options ) {
$.fn.dropdown = function ( selector ) {
return this.each(function () {
$(this).delegate(selector, 'click', function (e) {
$(this).delegate(selector || d, 'click', function (e) {
var li = $(this).parent('li')
, isActive = li.hasClass('open')

Expand Down
210 changes: 121 additions & 89 deletions js/bootstrap-modal.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,142 +54,174 @@

var Modal = function ( content, options ) {
this.settings = $.extend({}, $.fn.modal.defaults)
this.$element = $(content)
.delegate('.close', 'click.modal', $.proxy(this.hide, this))

if ( options ) {
$.extend( this.settings, options )
}

this.$element = $(content)
.bind('modal:show', $.proxy(this.show, this))
.bind('modal:hide', $.proxy(this.hide, this))
.bind('modal:toggle', $.proxy(this.toggle, this))
.delegate('.close', 'click', $.proxy(this.hide, this))
if ( options.show ) {
this.show()
}
}

return this
}

Modal.prototype = {

toggle: function () {
return this[!this.isShown ? 'show' : 'hide']()
}

, show: function () {
var that = this
this.isShown = true

_.escape.call(this)
toggle: function () {
return this[!this.isShown ? 'show' : 'hide']()
}

_.backdrop.call(this, function () {
that.$element
.appendTo(document.body)
.show()
, show: function () {
var that = this
this.isShown = true
this.$element.trigger('show')

setTimeout(function () {
escape.call(this)
backdrop.call(this, function () {
that.$element
.addClass('in')
.trigger('modal:shown')
}, 1)
})

return this
}
.appendTo(document.body)
.show()

setTimeout(function () {
that.$element
.addClass('in')
.trigger('shown')
}, 1)
})

, hide: function (e) {
e && e.preventDefault()
return this
}

var that = this
, hide: function (e) {
e && e.preventDefault()

this.isShown = false
var that = this
this.isShown = false

_.escape.call(this)
escape.call(this)

this.$element.removeClass('in')
this.$element
.trigger('hide')
.removeClass('in')

function removeElement () {
that.$element
.detach()
.trigger('modal:hidden')
function removeElement () {
that.$element
.hide()
.trigger('hidden')

_.backdrop.call(that)
}
backdrop.call(that)
}

$.support.transition && this.$element.hasClass('fade') ?
this.$element.one(transitionEnd, removeElement) :
removeElement()
$.support.transition && this.$element.hasClass('fade') ?
this.$element.one(transitionEnd, removeElement) :
removeElement()

return this
}
return this
}

}


/* MODAL PRIVATE METHODS
* ===================== */

var _ = {

backdrop: function ( callback ) {
var that = this
, animate = this.$element.hasClass('fade') ? 'fade' : ''
if ( this.isShown && this.settings.backdrop ) {
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
.click($.proxy(this.hide, this))
.appendTo(document.body)

setTimeout(function () {
that.$backdrop && that.$backdrop.addClass('in')
$.support.transition && that.$backdrop.hasClass('fade') ?
that.$backdrop.one(transitionEnd, callback) :
callback()
})
} else if ( !this.isShown && this.$backdrop ) {
this.$backdrop.removeClass('in')

function removeElement() {
that.$backdrop.remove()
that.$backdrop = null
}
function backdrop ( callback ) {
var that = this
, animate = this.$element.hasClass('fade') ? 'fade' : ''
if ( this.isShown && this.settings.backdrop ) {
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
.click($.proxy(this.hide, this))
.appendTo(document.body)

setTimeout(function () {
that.$backdrop && that.$backdrop.addClass('in')
$.support.transition && that.$backdrop.hasClass('fade') ?
that.$backdrop.one(transitionEnd, callback) :
callback()
})
} else if ( !this.isShown && this.$backdrop ) {
this.$backdrop.removeClass('in')

$.support.transition && this.$element.hasClass('fade')?
this.$backdrop.one(transitionEnd, removeElement) :
removeElement()
} else {
callback()
function removeElement() {
that.$backdrop.remove()
that.$backdrop = null
}
}

, escape: function () {
var that = this
if ( this.isShown && this.settings.closeOnEscape ) {
$('body').bind('keyup.modal.escape', function ( e ) {
if ( e.which == 27 ) {
that.hide()
}
})
} else if ( !this.isShown ) {
$('body').unbind('keyup.modal.escape')
}
$.support.transition && this.$element.hasClass('fade')?
this.$backdrop.one(transitionEnd, removeElement) :
removeElement()
} else if ( callback ) {
callback()
}
}

function escape() {
var that = this
if ( this.isShown && this.settings.keyboard ) {
$('body').bind('keyup.modal', function ( e ) {
if ( e.which == 27 ) {
that.hide()
}
})
} else if ( !this.isShown ) {
$('body').unbind('keyup.modal')
}
}


/* MODAL PLUGIN DEFINITION
* ======================= */

$.fn.modal = function ( options ) {
options = options || {}
return this.each(function () {
return new Modal(this, options)
})
var modal = this.data('modal')

if (!modal) {

if (typeof options == 'string') {
options = {
show: /show|toggle/.test(options)
}
}

return this.each(function () {
$(this).data('modal', new Modal(this, options))
})
}

if ( options === true ) {
return modal
}

if ( typeof options == 'string' ) {
modal[options]()
} else if ( modal ) {
modal.toggle()
}

return this
}

$.fn.modal.Modal = Modal

$.fn.modal.defaults = {
backdrop: false
, hideOnEscape: false
, keyboard: false
, show: true
}


/* MODAL DATA- IMPLEMENTATION
* ========================== */

$(function () {
$('body').delegate('[data-controls-modal]', 'click', function (e) {
e.preventDefault()
var $this = $(this).data('show', true)
$('#' + $this.attr('data-controls-modal')).modal( $this.data() )
})
})

})( jQuery || ender )
43 changes: 30 additions & 13 deletions js/bootstrap-scrollspy.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,21 +22,20 @@

var $window = $(window)

function ScrollSpy( topbar ) {
function ScrollSpy( topbar, selector ) {
var processScroll = $.proxy(this.processScroll, this)
this.$topbar = $(topbar)
this.setup()
this.$topbar
.delegate('li > a', 'click', processScroll)
.bind('topbar:refresh', $.proxy(this.setup, this))
this.selector = selector || 'li > a'
this.refresh()
this.$topbar.delegate(this.selector, 'click', processScroll)
$window.scroll(processScroll)
this.processScroll()
}

ScrollSpy.prototype = {

setup: function () {
this.targets = this.$topbar.find('li > a').map(function () {
refresh: function () {
this.targets = this.$topbar.find(this.selector).map(function () {
var href = $(this).attr('href')
return /^#\w/.test(href) && $(href).length ? href : null
})
Expand Down Expand Up @@ -65,11 +64,11 @@
this.activeTarget = target

this.$topbar
.find('.active')
.find(this.selector).parent('.active')
.removeClass('active')

this.$topbar
.find('a[href=' + target + ']')
.find(this.selector + '[href="' + target + '"]')
.parent('li')
.addClass('active')
}
Expand All @@ -79,10 +78,28 @@
/* SCROLLSPY PLUGIN DEFINITION
* =========================== */

$.fn.scrollSpy = function() {
return this.each(function () {
new ScrollSpy(this)
})
$.fn.scrollSpy = function( options ) {
var scrollspy = this.data('scrollspy')

if (!scrollspy) {
return this.each(function () {
$(this).data('scrollspy', new ScrollSpy( this, options ))
})
}

if ( options === true ) {
return scrollspy
}

if ( typeof options == 'string' ) {
scrollspy[options]()
}

return this
}

$(function () {
$('body').scrollSpy('[data-scrollspy] li > a')
})

}( jQuery || ender )
Loading

0 comments on commit 173be3f

Please sign in to comment.