// tablecloth.js
// copyright brian sewell
// https://github.com/bwsewell/tablecloth
//
// v1.0.0
// May 4, 2012 14:20
(function( $ ){
$.fn.tablecloth = function(options) {
var defaults = {
theme: "default", // "none","default","stats"
customClass: "",
bordered: false,
condensed: false,
striped: false,
sortable: false,
clean: false,
cleanElements: "*"
};
var opts = $.extend(defaults, options);
// Before we remove any attributes, let's fix a few things up
this.find("*").each(function() {
if ($(this).attr("align") == "right") {
$(this).addClass("right");
}
if ($(this).attr("align") == "center") {
$(this).addClass("center");
}
if ($(this).attr("nowrap")) {
$(this).css('white-space','nowrap');
}
});
// Get rid of all inline styling and deprecated table attributes
// Also get rid of any current classes being applied to the <table> element
if (opts.clean) {
this.removeAttr('class')
.removeAttr('style')
.removeAttr('cellpadding')
.removeAttr('cellspacing')
.removeAttr('bgcolor')
.removeAttr('align')
.removeAttr('width')
.removeAttr('nowrap');
this.find(opts.cleanElements).each(function() {
$(this).removeAttr('style')
.removeAttr('cellpadding')
.removeAttr('cellspacing')
.removeAttr('bgcolor')
.removeAttr('align')
.removeAttr('width')
.removeAttr('nowrap');
});
}
// Set the table theme accordingly
if (opts.theme == "default") {
this.addClass("table");
}
else if (opts.theme == "dark") {
this.addClass("table table-dark");
}
else if (opts.theme == "stats") {
this.addClass("table table-stats");
}
else if (opts.theme == "paper") {
this.addClass("table table-paper");
}
// Set the table theme accordingly
if (opts.customClass != "") {
this.addClass(opts.customClass);
}
// Set the table options accordingly
if (opts.condensed) {
this.addClass("table-condensed");
}
if (opts.bordered) {
this.addClass("table-bordered");
}
if (opts.striped) {
this.addClass("table-striped");
}
if (opts.sortable) {
this.addClass("table-sortable");
if (jQuery().tablesorter) {
this.tablesorter({cssHeader: "headerSortable"});
}
else {
console.log('Tablesorter is not loaded');
}
}
};
})( jQuery );