mirror of
https://gitlab.com/JKANetwork/CheckServer.git
synced 2026-02-20 12:11:34 +01:00
Start again
This commit is contained in:
98
vendors/starrr/dist/starrr.js
vendored
Normal file
98
vendors/starrr/dist/starrr.js
vendored
Normal file
@@ -0,0 +1,98 @@
|
||||
var slice = [].slice;
|
||||
|
||||
(function($, window) {
|
||||
var Starrr;
|
||||
window.Starrr = Starrr = (function() {
|
||||
Starrr.prototype.defaults = {
|
||||
rating: void 0,
|
||||
max: 5,
|
||||
readOnly: false,
|
||||
emptyClass: 'fa fa-star-o',
|
||||
fullClass: 'fa fa-star',
|
||||
change: function(e, value) {}
|
||||
};
|
||||
|
||||
function Starrr($el, options) {
|
||||
this.options = $.extend({}, this.defaults, options);
|
||||
this.$el = $el;
|
||||
this.createStars();
|
||||
this.syncRating();
|
||||
if (this.options.readOnly) {
|
||||
return;
|
||||
}
|
||||
this.$el.on('mouseover.starrr', 'a', (function(_this) {
|
||||
return function(e) {
|
||||
return _this.syncRating(_this.getStars().index(e.currentTarget) + 1);
|
||||
};
|
||||
})(this));
|
||||
this.$el.on('mouseout.starrr', (function(_this) {
|
||||
return function() {
|
||||
return _this.syncRating();
|
||||
};
|
||||
})(this));
|
||||
this.$el.on('click.starrr', 'a', (function(_this) {
|
||||
return function(e) {
|
||||
e.preventDefault();
|
||||
return _this.setRating(_this.getStars().index(e.currentTarget) + 1);
|
||||
};
|
||||
})(this));
|
||||
this.$el.on('starrr:change', this.options.change);
|
||||
}
|
||||
|
||||
Starrr.prototype.getStars = function() {
|
||||
return this.$el.find('a');
|
||||
};
|
||||
|
||||
Starrr.prototype.createStars = function() {
|
||||
var j, ref, results;
|
||||
results = [];
|
||||
for (j = 1, ref = this.options.max; 1 <= ref ? j <= ref : j >= ref; 1 <= ref ? j++ : j--) {
|
||||
results.push(this.$el.append("<a href='#' />"));
|
||||
}
|
||||
return results;
|
||||
};
|
||||
|
||||
Starrr.prototype.setRating = function(rating) {
|
||||
if (this.options.rating === rating) {
|
||||
rating = void 0;
|
||||
}
|
||||
this.options.rating = rating;
|
||||
this.syncRating();
|
||||
return this.$el.trigger('starrr:change', rating);
|
||||
};
|
||||
|
||||
Starrr.prototype.getRating = function() {
|
||||
return this.options.rating;
|
||||
};
|
||||
|
||||
Starrr.prototype.syncRating = function(rating) {
|
||||
var $stars, i, j, ref, results;
|
||||
rating || (rating = this.options.rating);
|
||||
$stars = this.getStars();
|
||||
results = [];
|
||||
for (i = j = 1, ref = this.options.max; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) {
|
||||
results.push($stars.eq(i - 1).removeClass(rating >= i ? this.options.emptyClass : this.options.fullClass).addClass(rating >= i ? this.options.fullClass : this.options.emptyClass));
|
||||
}
|
||||
return results;
|
||||
};
|
||||
|
||||
return Starrr;
|
||||
|
||||
})();
|
||||
return $.fn.extend({
|
||||
starrr: function() {
|
||||
var args, option;
|
||||
option = arguments[0], args = 2 <= arguments.length ? slice.call(arguments, 1) : [];
|
||||
return this.each(function() {
|
||||
var data;
|
||||
data = $(this).data('starrr');
|
||||
if (!data) {
|
||||
$(this).data('starrr', (data = new Starrr($(this), option)));
|
||||
}
|
||||
if (typeof option === 'string') {
|
||||
return data[option].apply(data, args);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
})(window.jQuery, window);
|
||||
Reference in New Issue
Block a user