Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 1 | espaco | 1 | /*! |
| 2 | * jQuery twitter bootstrap wizard plugin |
||
| 3 | * Examples and documentation at: http://github.com/VinceG/twitter-bootstrap-wizard |
||
| 4 | * version 1.0 |
||
| 5 | * Requires jQuery v1.3.2 or later |
||
| 6 | * Supports Bootstrap 2.2.x, 2.3.x, 3.0 |
||
| 7 | * Dual licensed under the MIT and GPL licenses: |
||
| 8 | * http://www.opensource.org/licenses/mit-license.php |
||
| 9 | * http://www.gnu.org/licenses/gpl.html |
||
| 10 | * Authors: Vadim Vincent Gabriel (http://vadimg.com), Jason Gill (www.gilluminate.com) |
||
| 11 | */ |
||
| 12 | (function (e) { |
||
| 13 | var k = function (d, g) { |
||
| 14 | d = e(d); |
||
| 15 | var a = this, |
||
| 16 | b = e.extend({}, e.fn.bootstrapWizard.defaults, g), |
||
| 17 | f = null, |
||
| 18 | c = null; |
||
| 19 | this.rebindClick = function (b, a) { |
||
| 20 | b.unbind("click", a).bind("click", a) |
||
| 21 | }; |
||
| 22 | this.fixNavigationButtons = function () { |
||
| 23 | f.length || (c.find("a:first").tab("show"), f = c.find('li:has([data-toggle="tab"]):first')); |
||
| 24 | e(b.previousSelector, d).toggleClass("disabled", a.firstIndex() >= a.currentIndex()); |
||
| 25 | e(b.nextSelector, d).toggleClass("disabled", a.currentIndex() >= a.navigationLength()); |
||
| 26 | a.rebindClick(e(b.nextSelector, d), |
||
| 27 | a.next); |
||
| 28 | a.rebindClick(e(b.previousSelector, d), a.previous); |
||
| 29 | a.rebindClick(e(b.lastSelector, d), a.last); |
||
| 30 | a.rebindClick(e(b.firstSelector, d), a.first); |
||
| 31 | if (b.onTabShow && "function" === typeof b.onTabShow && !1 === b.onTabShow(f, c, a.currentIndex())) return !1 |
||
| 32 | }; |
||
| 33 | this.next = function (h) { |
||
| 34 | if (d.hasClass("last") || b.onNext && "function" === typeof b.onNext && !1 === b.onNext(f, c, a.nextIndex())) return !1; |
||
| 35 | $index = a.nextIndex(); |
||
| 36 | $index > a.navigationLength() || c.find('li:has([data-toggle="tab"]):eq(' + $index + ") a").tab("show") |
||
| 37 | }; |
||
| 38 | this.previous = |
||
| 39 | function (h) { |
||
| 40 | if (d.hasClass("first") || b.onPrevious && "function" === typeof b.onPrevious && !1 === b.onPrevious(f, c, a.previousIndex())) return !1; |
||
| 41 | $index = a.previousIndex(); |
||
| 42 | |||
| 43 | }; |
||
| 44 | this.first = function (h) { |
||
| 45 | if (b.onFirst && "function" === typeof b.onFirst && !1 === b.onFirst(f, c, a.firstIndex()) || d.hasClass("disabled")) return !1; |
||
| 46 | c.find('li:has([data-toggle="tab"]):eq(0) a').tab("show") |
||
| 47 | }; |
||
| 48 | this.last = function (h) { |
||
| 49 | if (b.onLast && "function" === typeof b.onLast && !1 === |
||
| 50 | b.onLast(f, c, a.lastIndex()) || d.hasClass("disabled")) return !1; |
||
| 51 | c.find('li:has([data-toggle="tab"]):eq(' + a.navigationLength() + ") a").tab("show") |
||
| 52 | }; |
||
| 53 | this.currentIndex = function () { |
||
| 54 | return c.find('li:has([data-toggle="tab"])').index(f) |
||
| 55 | }; |
||
| 56 | this.firstIndex = function () { |
||
| 57 | return 0 |
||
| 58 | }; |
||
| 59 | this.lastIndex = function () { |
||
| 60 | return a.navigationLength() |
||
| 61 | }; |
||
| 62 | this.getIndex = function (a) { |
||
| 63 | return c.find('li:has([data-toggle="tab"])').index(a) |
||
| 64 | }; |
||
| 65 | this.nextIndex = function () { |
||
| 66 | return c.find('li:has([data-toggle="tab"])').index(f) + 1 |
||
| 67 | }; |
||
| 68 | this.previousIndex = |
||
| 69 | function () { |
||
| 70 | return c.find('li:has([data-toggle="tab"])').index(f) - 1 |
||
| 71 | }; |
||
| 72 | this.navigationLength = function () { |
||
| 73 | return c.find('li:has([data-toggle="tab"])').length - 1 |
||
| 74 | }; |
||
| 75 | this.activeTab = function () { |
||
| 76 | return f |
||
| 77 | }; |
||
| 78 | this.nextTab = function () { |
||
| 79 | return c.find('li:has([data-toggle="tab"]):eq(' + (a.currentIndex() + 1) + ")").length ? c.find('li:has([data-toggle="tab"]):eq(' + (a.currentIndex() + 1) + ")") : null |
||
| 80 | }; |
||
| 81 | this.previousTab = function () { |
||
| 82 | return 0 >= a.currentIndex() ? null : c.find('li:has([data-toggle="tab"]):eq(' + parseInt(a.currentIndex() - 1) + ")") |
||
| 83 | }; |
||
| 84 | this.show = function (a) { |
||
| 85 | return d.find('li:has([data-toggle="tab"]):eq(' + a + ") a").tab("show") |
||
| 86 | }; |
||
| 87 | this.disable = function (a) { |
||
| 88 | c.find('li:has([data-toggle="tab"]):eq(' + a + ")").addClass("disabled") |
||
| 89 | }; |
||
| 90 | this.enable = function (a) { |
||
| 91 | c.find('li:has([data-toggle="tab"]):eq(' + a + ")").removeClass("disabled") |
||
| 92 | }; |
||
| 93 | this.hide = function (a) { |
||
| 94 | c.find('li:has([data-toggle="tab"]):eq(' + a + ")").hide() |
||
| 95 | }; |
||
| 96 | this.display = function (a) { |
||
| 97 | c.find('li:has([data-toggle="tab"]):eq(' + a + ")").show() |
||
| 98 | }; |
||
| 99 | this.remove = function (a) { |
||
| 100 | var b = "undefined" != typeof a[1] ? a[1] : |
||
| 101 | !1; |
||
| 102 | a = c.find('li:has([data-toggle="tab"]):eq(' + a[0] + ")"); |
||
| 103 | b && (b = a.find("a").attr("href"), e(b).remove()); |
||
| 104 | a.remove() |
||
| 105 | }; |
||
| 106 | c = d.find("ul:first", d); |
||
| 107 | f = c.find('li:has([data-toggle="tab"]).active', d); |
||
| 108 | c.hasClass(b.tabClass) || c.addClass(b.tabClass); |
||
| 109 | if (b.onInit && "function" === typeof b.onInit) b.onInit(f, c, 0); |
||
| 110 | if (b.onShow && "function" === typeof b.onShow) b.onShow(f, c, a.nextIndex()); |
||
| 111 | a.fixNavigationButtons(); |
||
| 112 | e('a[data-toggle="tab"]', c).on("click", function (d) { |
||
| 113 | d = c.find('li:has([data-toggle="tab"])').index(e(d.currentTarget).parent('li:has([data-toggle="tab"])')); |
||
| 114 | if (b.onTabClick && "function" === typeof b.onTabClick && !1 === b.onTabClick(f, c, a.currentIndex(), d)) return !1 |
||
| 115 | }); |
||
| 116 | e('a[data-toggle="tab"]', c).on("shown shown.bs.tab", function (d) { |
||
| 117 | $element = e(d.target).parent(); |
||
| 118 | d = c.find('li:has([data-toggle="tab"])').index($element); |
||
| 119 | if ($element.hasClass("disabled") || b.onTabChange && "function" === typeof b.onTabChange && !1 === b.onTabChange(f, c, a.currentIndex(), d)) return !1; |
||
| 120 | f = $element; |
||
| 121 | a.fixNavigationButtons() |
||
| 122 | }) |
||
| 123 | }; |
||
| 124 | e.fn.bootstrapWizard = function (d) { |
||
| 125 | if ("string" == typeof d) { |
||
| 126 | var g = Array.prototype.slice.call(arguments, |
||
| 127 | 1); |
||
| 128 | 1 === g.length && g.toString(); |
||
| 129 | return this.data("bootstrapWizard")[d](g) |
||
| 130 | } |
||
| 131 | return this.each(function (a) { |
||
| 132 | a = e(this); |
||
| 133 | if (!a.data("bootstrapWizard")) { |
||
| 134 | var b = new k(a, d); |
||
| 135 | a.data("bootstrapWizard", b) |
||
| 136 | } |
||
| 137 | }) |
||
| 138 | }; |
||
| 139 | e.fn.bootstrapWizard.defaults = { |
||
| 140 | tabClass: "nav nav-pills", |
||
| 141 | nextSelector: ".wizard li.next", |
||
| 142 | previousSelector: ".wizard li.previous", |
||
| 143 | firstSelector: ".wizard li.first", |
||
| 144 | lastSelector: ".wizard li.last", |
||
| 145 | onShow: null, |
||
| 146 | onInit: null, |
||
| 147 | onNext: null, |
||
| 148 | onPrevious: null, |
||
| 149 | onLast: null, |
||
| 150 | onFirst: null, |
||
| 151 | onTabChange: null, |
||
| 152 | onTabClick: null, |
||
| 153 | onTabShow: null |
||
| 154 | } |
||
| 155 | })(jQuery); |