You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.7 KiB
JavaScript
63 lines
1.7 KiB
JavaScript
/**
|
|
* @author: Dennis Hernández
|
|
* @webSite: http://djhvscf.github.io/Blog
|
|
* @version: v1.3.0
|
|
*/
|
|
|
|
(function ($) {
|
|
'use strict';
|
|
|
|
var flat = function (element, that) {
|
|
var result = {};
|
|
|
|
function recurse(cur, prop) {
|
|
if (Object(cur) !== cur) {
|
|
result[prop] = cur;
|
|
} else if ($.isArray(cur)) {
|
|
for (var i = 0, l = cur.length; i < l; i++) {
|
|
recurse(cur[i], prop ? prop + that.options.flatSeparator + i : "" + i);
|
|
if (l == 0) {
|
|
result[prop] = [];
|
|
}
|
|
}
|
|
} else {
|
|
var isEmpty = true;
|
|
for (var p in cur) {
|
|
isEmpty = false;
|
|
recurse(cur[p], prop ? prop + that.options.flatSeparator + p : p);
|
|
}
|
|
if (isEmpty) {
|
|
result[prop] = {};
|
|
}
|
|
}
|
|
}
|
|
|
|
recurse(element, "");
|
|
return result;
|
|
};
|
|
|
|
var flatHelper = function (data, that) {
|
|
var flatArray = [];
|
|
|
|
$.each(!$.isArray(data) ? [data] : data, function (i, element) {
|
|
flatArray.push(flat(element, that));
|
|
});
|
|
return flatArray;
|
|
};
|
|
|
|
$.extend($.fn.bootstrapTable.defaults, {
|
|
flat: false,
|
|
flatSeparator: '.'
|
|
});
|
|
|
|
var BootstrapTable = $.fn.bootstrapTable.Constructor,
|
|
_initData = BootstrapTable.prototype.initData;
|
|
|
|
BootstrapTable.prototype.initData = function (data, type) {
|
|
if (this.options.flat) {
|
|
data = flatHelper(data ? data : this.options.data, this);
|
|
}
|
|
_initData.apply(this, [data, type]);
|
|
};
|
|
})(jQuery);
|