aboutsummaryrefslogtreecommitdiff
path: root/docs/assets/js/application.js
diff options
context:
space:
mode:
Diffstat (limited to 'docs/assets/js/application.js')
-rw-r--r--docs/assets/js/application.js209
1 files changed, 169 insertions, 40 deletions
diff --git a/docs/assets/js/application.js b/docs/assets/js/application.js
index 5beba46e1..b29b63aee 100644
--- a/docs/assets/js/application.js
+++ b/docs/assets/js/application.js
@@ -1,52 +1,181 @@
-$(document).ready(function(){
+// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
+// IT'S ALL JUST JUNK FOR OUR DOCS!
+// ++++++++++++++++++++++++++++++++++++++++++
- // table sort example
- // ==================
+!function ($) {
- $("#sortTableExample").tablesorter( { sortList: [[ 1, 0 ]] } )
+ $(function(){
+ // Disable certain links in docs
+ $('section [href^=#]').click(function (e) {
+ e.preventDefault()
+ })
- // add on logic
- // ============
+ // make code pretty
+ window.prettyPrint && prettyPrint()
- $('.add-on :checkbox').click(function () {
- if ($(this).attr('checked')) {
- $(this).parents('.add-on').addClass('active')
- } else {
- $(this).parents('.add-on').removeClass('active')
+ // add-ons
+ $('.add-on :checkbox').on('click', function () {
+ var $this = $(this)
+ , method = $this.attr('checked') ? 'addClass' : 'removeClass'
+ $(this).parents('.add-on')[method]('active')
+ })
+
+ // position static twipsies for components page
+ if ($(".twipsies a").length) {
+ $(window).on('load resize', function () {
+ $(".twipsies a").each(function () {
+ $(this)
+ .tooltip({
+ placement: $(this).attr('title')
+ , trigger: 'manual'
+ })
+ .tooltip('show')
+ })
+ })
}
- })
+ // add tipsies to grid for scaffolding
+ if ($('#grid-system').length) {
+ $('#grid-system').tooltip({
+ selector: '.show-grid > div'
+ , title: function () { return $(this).width() + 'px' }
+ })
+ }
- // Disable certain links in docs
- // =============================
- // Please do not carry these styles over to your projects, it's merely here to prevent button clicks form taking you away from your spot on page
+ // fix sub nav on scroll
+ var $win = $(window)
+ , $nav = $('.subnav')
+ , navTop = $('.subnav').length && $('.subnav').offset().top - 40
+ , isFixed = 0
- $('ul.tabs a, ul.pills a, .pagination a, .well .btn, .actions .btn, .alert-message .btn, a.close').click(function (e) {
- e.preventDefault()
- })
+ processScroll()
+
+ $win.on('scroll', processScroll)
+
+ function processScroll() {
+ var i, scrollTop = $win.scrollTop()
+ if (scrollTop >= navTop && !isFixed) {
+ isFixed = 1
+ $nav.addClass('subnav-fixed')
+ } else if (scrollTop <= navTop && isFixed) {
+ isFixed = 0
+ $nav.removeClass('subnav-fixed')
+ }
+ }
- // Copy code blocks in docs
- $(".copy-code").focus(function () {
- var el = this;
- // push select to event loop for chrome :{o
- setTimeout(function () { $(el).select(); }, 0);
- });
-
-
- // POSITION STATIC TWIPSIES
- // ========================
-
- $(window).bind( 'load resize', function () {
- $(".twipsies a").each(function () {
- $(this)
- .twipsy({
- live: false
- , placement: $(this).attr('title')
- , trigger: 'manual'
- , offset: 2
- })
- .twipsy('show')
+ // tooltip demo
+ $('.tooltip-demo.well').tooltip({
+ selector: "a[rel=tooltip]"
+ })
+
+ $('.tooltip-test').tooltip()
+ $('.popover-test').popover()
+
+ // popover demo
+ $("a[rel=popover]")
+ .popover()
+ .click(function(e) {
+ e.preventDefault()
})
+
+ // button state demo
+ $('#fat-btn')
+ .click(function () {
+ var btn = $(this)
+ btn.button('loading')
+ setTimeout(function () {
+ btn.button('reset')
+ }, 3000)
+ })
+
+ // carousel demo
+ $('#myCarousel').carousel()
+
+ // javascript build logic
+ var inputsComponent = $("#components.download input")
+ , inputsPlugin = $("#plugins.download input")
+ , inputsVariables = $("#variables.download input")
+
+ // toggle all plugin checkboxes
+ $('#components.download .toggle-all').on('click', function (e) {
+ e.preventDefault()
+ inputsComponent.attr('checked', !inputsComponent.is(':checked'))
+ })
+
+ $('#plugins.download .toggle-all').on('click', function (e) {
+ e.preventDefault()
+ inputsPlugin.attr('checked', !inputsPlugin.is(':checked'))
+ })
+
+ $('#variables.download .toggle-all').on('click', function (e) {
+ e.preventDefault()
+ inputsVariables.val('')
+ })
+
+ // request built javascript
+ $('.download-btn').on('click', function () {
+
+ var css = $("#components.download input:checked")
+ .map(function () { return this.value })
+ .toArray()
+ , js = $("#plugins.download input:checked")
+ .map(function () { return this.value })
+ .toArray()
+ , vars = {}
+ , img = ['glyphicons-halflings.png', 'glyphicons-halflings-white.png']
+
+ $("#variables.download input")
+ .each(function () {
+ $(this).val() && (vars[ $(this).prev().text() ] = $(this).val())
+ })
+
+ $.ajax({
+ type: 'POST'
+ , url: 'http://bootstrap.herokuapp.com'
+ , dataType: 'jsonpi'
+ , params: {
+ branch: '2.0-wip'
+ , js: js
+ , css: css
+ , vars: vars
+ , img: img
+ }
+ })
+ })
+
})
-});
+
+// Modified from the original jsonpi https://github.com/benvinegar/jquery-jsonpi
+$.ajaxTransport('jsonpi', function(opts, originalOptions, jqXHR) {
+ var url = opts.url;
+
+ return {
+ send: function(_, completeCallback) {
+ var name = 'jQuery_iframe_' + jQuery.now()
+ , iframe, form
+
+ iframe = $('<iframe>')
+ .attr('name', name)
+ .appendTo('head')
+
+ form = $('<form>')
+ .attr('method', opts.type) // GET or POST
+ .attr('action', url)
+ .attr('target', name)
+
+ $.each(opts.params, function(k, v) {
+
+ $('<input>')
+ .attr('type', 'hidden')
+ .attr('name', k)
+ .attr('value', typeof v == 'string' ? v : JSON.stringify(v))
+ .appendTo(form)
+ })
+
+ form.appendTo('body').submit()
+ }
+ }
+})
+
+}(window.jQuery) \ No newline at end of file