You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
4.8 KiB
134 lines
4.8 KiB
(function (b, c) {
|
|
var a = function (f, e) {
|
|
var d;
|
|
this.$element = b(f);
|
|
this.options = b.extend({}, b.fn.wizard.defaults, e);
|
|
this.currentStep = 1;
|
|
this.numSteps = this.$element.find("li").length;
|
|
/*Customized to Enable Out Of Wizard Buttons*/
|
|
this.$prevBtn = $('#'+this.$element[0].id+'-actions').find("a.btn-prev");
|
|
this.$nextBtn = $('#' + this.$element[0].id + '-actions').find("a.btn-next");
|
|
/*End Customized to Enable Out Of Wizard Buttons*/
|
|
d = this.$nextBtn.children().detach();
|
|
this.nextText = b.trim(this.$nextBtn.text());
|
|
this.$nextBtn.append(d);
|
|
this.$prevBtn.on("click", b.proxy(this.previous, this));
|
|
this.$nextBtn.on("click", b.proxy(this.next, this));
|
|
this.$element.on("click", "li.complete", b.proxy(this.stepclicked, this));
|
|
this.$stepContainer = this.$element.data("target") || "body";
|
|
this.$stepContainer = b(this.$stepContainer)
|
|
};
|
|
a.prototype = {
|
|
constructor: a,
|
|
setState: function () {
|
|
var n = (this.currentStep > 1);
|
|
var o = (this.currentStep === 1);
|
|
var d = (this.currentStep === this.numSteps);
|
|
this.$prevBtn.attr("disabled", (o === true || n === false));
|
|
var h = this.$nextBtn.data();
|
|
if (h && h.last) {
|
|
this.lastText = h.last;
|
|
if (typeof this.lastText !== "undefined") {
|
|
var l = (d !== true) ? this.nextText : this.lastText;
|
|
var f = this.$nextBtn.children().detach();
|
|
this.$nextBtn.text(l).append(f)
|
|
}
|
|
}
|
|
var j = this.$element.find("li");
|
|
j.removeClass("active").removeClass("complete");
|
|
var m = "li:lt(" + (this.currentStep - 1) + ")";
|
|
var g = this.$element.find(m);
|
|
g.addClass("complete");
|
|
var e = "li:eq(" + (this.currentStep - 1) + ")";
|
|
var k = this.$element.find(e);
|
|
k.addClass("active");
|
|
var i = k.data().target;
|
|
this.$stepContainer.find(".step-pane").removeClass("active");
|
|
b(i).addClass("active");
|
|
this.$element.trigger("changed")
|
|
},
|
|
stepclicked: function (h) {
|
|
var d = b(h.currentTarget);
|
|
var g = this.$element.find("li").index(d);
|
|
var f = b.Event("change");
|
|
this.$element.trigger(f, {
|
|
step: g + 1,
|
|
direction: "stepclicked",
|
|
currentStep: g + 1
|
|
});
|
|
if (f.isDefaultPrevented()) {
|
|
return
|
|
}
|
|
this.currentStep = (g + 1);
|
|
this.setState()
|
|
},
|
|
previous: function () {
|
|
var d = (this.currentStep > 1);
|
|
if (d) {
|
|
var f = b.Event("change");
|
|
this.$element.trigger(f, {
|
|
step: this.currentStep,
|
|
direction: "previous",
|
|
currentStep:this.currentStep-1
|
|
});
|
|
if (f.isDefaultPrevented()) {
|
|
return
|
|
}
|
|
this.currentStep -= 1;
|
|
this.setState()
|
|
}
|
|
},
|
|
next: function () {
|
|
var g = (this.currentStep + 1 <= this.numSteps);
|
|
var d = (this.currentStep === this.numSteps);
|
|
if (g) {
|
|
var f = b.Event("change");
|
|
this.$element.trigger(f, {
|
|
step: this.currentStep,
|
|
direction: "next",
|
|
currentStep: this.currentStep + 1
|
|
});
|
|
if (f.isDefaultPrevented()) {
|
|
return
|
|
}
|
|
this.currentStep += 1;
|
|
this.setState()
|
|
} else {
|
|
if (d) {
|
|
this.$element.trigger("finished")
|
|
}
|
|
}
|
|
},
|
|
selectedItem: function (d) {
|
|
return {
|
|
step: this.currentStep
|
|
}
|
|
}
|
|
};
|
|
b.fn.wizard = function (e, g) {
|
|
var f;
|
|
var d = this.each(function () {
|
|
var j = b(this);
|
|
var i = j.data("wizard");
|
|
var h = typeof e === "object" && e;
|
|
if (!i) {
|
|
j.data("wizard", (i = new a(this, h)))
|
|
}
|
|
if (typeof e === "string") {
|
|
f = i[e](g)
|
|
}
|
|
});
|
|
return (f === c) ? d : f
|
|
};
|
|
b.fn.wizard.defaults = {};
|
|
b.fn.wizard.Constructor = a;
|
|
b(function () {
|
|
b("body").on("mousedown.wizard.data-api", ".wizard", function () {
|
|
var d = b(this);
|
|
if (d.data("wizard")) {
|
|
return
|
|
}
|
|
d.wizard(d.data())
|
|
})
|
|
})
|
|
})(window.jQuery);
|