Merge pull request #272 from julmot/datatables.mark.js
New feature - Mark.js integration with DataTablespull/274/head
commit
6bd63e9616
@ -0,0 +1,4 @@
|
|||||||
|
mark {
|
||||||
|
background: orange;
|
||||||
|
color: black;
|
||||||
|
}
|
@ -0,0 +1,80 @@
|
|||||||
|
/*!***************************************************
|
||||||
|
* datatables.mark.js v1.0.0
|
||||||
|
* https://github.com/julmot/datatables.mark.js
|
||||||
|
* Copyright (c) 2016, Julian Motz
|
||||||
|
* Released under the MIT license https://git.io/voRZ7
|
||||||
|
*****************************************************/
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
((factory, window, document) => {
|
||||||
|
if (typeof define === "function" && define.amd) {
|
||||||
|
define(["jquery", "datatables", "markjs"], jQuery => {
|
||||||
|
return factory(window, document, jQuery);
|
||||||
|
});
|
||||||
|
} else if (typeof exports === "object") {
|
||||||
|
require("datatables");
|
||||||
|
require("markjs");
|
||||||
|
factory(window, document, require("jquery"));
|
||||||
|
} else {
|
||||||
|
factory(window, document, jQuery);
|
||||||
|
}
|
||||||
|
})((window, document, $) => {
|
||||||
|
class Mark_DataTables {
|
||||||
|
constructor(dtInstance, options) {
|
||||||
|
if (typeof $.fn.mark !== "function" || typeof $.fn.unmark !== "function") {
|
||||||
|
throw new Error("jquery.mark.js is necessary for datatables.mark.js");
|
||||||
|
}
|
||||||
|
this.instance = dtInstance;
|
||||||
|
this.options = typeof options === "object" ? options : {};
|
||||||
|
this.initMarkListener();
|
||||||
|
}
|
||||||
|
|
||||||
|
initMarkListener() {
|
||||||
|
this.instance.on("draw.dt.dth column-visibility.dt.dth column-reorder.dt.dth", this.mark.bind(this));
|
||||||
|
this.instance.on("destroy", () => {
|
||||||
|
this.instance.off("draw.dt.dth column-visibility.dt.dth column-reorder.dt.dth");
|
||||||
|
});
|
||||||
|
this.mark();
|
||||||
|
}
|
||||||
|
|
||||||
|
mark() {
|
||||||
|
const globalSearch = this.instance.search();
|
||||||
|
|
||||||
|
$(this.instance.table().body()).unmark(this.options);
|
||||||
|
this.instance.columns({
|
||||||
|
search: "applied",
|
||||||
|
page: "current"
|
||||||
|
}).nodes().each((nodes, colIndex) => {
|
||||||
|
const columnSearch = this.instance.column(colIndex).search(),
|
||||||
|
searchVal = columnSearch || globalSearch;
|
||||||
|
if (searchVal) {
|
||||||
|
nodes.forEach(node => {
|
||||||
|
$(node).mark(searchVal, this.options);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).on("init.dt.dth", (event, settings) => {
|
||||||
|
if (event.namespace !== "dt") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const dtInstance = $.fn.dataTable.Api(settings);
|
||||||
|
|
||||||
|
let options = null;
|
||||||
|
if (dtInstance.init().mark) {
|
||||||
|
options = dtInstance.init().mark;
|
||||||
|
} else if ($.fn.dataTable.defaults.mark) {
|
||||||
|
options = $.fn.dataTable.defaults.mark;
|
||||||
|
}
|
||||||
|
if (options === null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
new Mark_DataTables(dtInstance, options);
|
||||||
|
});
|
||||||
|
}, window, document);
|
@ -0,0 +1,7 @@
|
|||||||
|
/*!***************************************************
|
||||||
|
* datatables.mark.js v1.0.0
|
||||||
|
* https://github.com/julmot/datatables.mark.js
|
||||||
|
* Copyright (c) 2016, Julian Motz
|
||||||
|
* Released under the MIT license https://git.io/voRZ7
|
||||||
|
*****************************************************/
|
||||||
|
"use strict";((factory,window,document) => {if(typeof define==="function"&&define.amd){define(["jquery","datatables","markjs"],jQuery => {return factory(window,document,jQuery);});}else if(typeof exports==="object"){require("datatables");require("markjs");factory(window,document,require("jquery"));}else {factory(window,document,jQuery);}})((window,document,$) => {class Mark_DataTables{constructor(dtInstance,options){if(typeof $.fn.mark!=="function"||typeof $.fn.unmark!=="function"){throw new Error("jquery.mark.js is necessary for datatables.mark.js");}this.instance=dtInstance;this.options=typeof options==="object"?options:{};this.initMarkListener();}initMarkListener(){this.instance.on("draw.dt.dth column-visibility.dt.dth column-reorder.dt.dth",this.mark.bind(this));this.instance.on("destroy",() => {this.instance.off("draw.dt.dth column-visibility.dt.dth column-reorder.dt.dth");});this.mark();}mark(){const globalSearch=this.instance.search();$(this.instance.table().body()).unmark(this.options);this.instance.columns({search:"applied",page:"current"}).nodes().each((nodes,colIndex) => {const columnSearch=this.instance.column(colIndex).search(),searchVal=columnSearch||globalSearch;if(searchVal){nodes.forEach(node => {$(node).mark(searchVal,this.options);});}});}}$(document).on("init.dt.dth",(event,settings) => {if(event.namespace!=="dt"){return;}const dtInstance=$.fn.dataTable.Api(settings);let options=null;if(dtInstance.init().mark){options=dtInstance.init().mark;}else if($.fn.dataTable.defaults.mark){options=$.fn.dataTable.defaults.mark;}if(options===null){return;}new Mark_DataTables(dtInstance,options);});},window,document);
|
@ -0,0 +1,97 @@
|
|||||||
|
/*!***************************************************
|
||||||
|
* datatables.mark.js v1.0.0
|
||||||
|
* https://github.com/julmot/datatables.mark.js
|
||||||
|
* Copyright (c) 2016, Julian Motz
|
||||||
|
* Released under the MIT license https://git.io/voRZ7
|
||||||
|
*****************************************************/
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||||||
|
|
||||||
|
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
|
||||||
|
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
(function (factory, window, document) {
|
||||||
|
if (typeof define === "function" && define.amd) {
|
||||||
|
define(["jquery", "datatables", "markjs"], function (jQuery) {
|
||||||
|
return factory(window, document, jQuery);
|
||||||
|
});
|
||||||
|
} else if ((typeof exports === "undefined" ? "undefined" : _typeof(exports)) === "object") {
|
||||||
|
require("datatables");
|
||||||
|
require("markjs");
|
||||||
|
factory(window, document, require("jquery"));
|
||||||
|
} else {
|
||||||
|
factory(window, document, jQuery);
|
||||||
|
}
|
||||||
|
})(function (window, document, $) {
|
||||||
|
var Mark_DataTables = function () {
|
||||||
|
function Mark_DataTables(dtInstance, options) {
|
||||||
|
_classCallCheck(this, Mark_DataTables);
|
||||||
|
|
||||||
|
if (typeof $.fn.mark !== "function" || typeof $.fn.unmark !== "function") {
|
||||||
|
throw new Error("jquery.mark.js is necessary for datatables.mark.js");
|
||||||
|
}
|
||||||
|
this.instance = dtInstance;
|
||||||
|
this.options = (typeof options === "undefined" ? "undefined" : _typeof(options)) === "object" ? options : {};
|
||||||
|
this.initMarkListener();
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(Mark_DataTables, [{
|
||||||
|
key: "initMarkListener",
|
||||||
|
value: function initMarkListener() {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
this.instance.on("draw.dt.dth column-visibility.dt.dth column-reorder.dt.dth", this.mark.bind(this));
|
||||||
|
this.instance.on("destroy", function () {
|
||||||
|
_this.instance.off("draw.dt.dth column-visibility.dt.dth column-reorder.dt.dth");
|
||||||
|
});
|
||||||
|
this.mark();
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "mark",
|
||||||
|
value: function mark() {
|
||||||
|
var _this2 = this;
|
||||||
|
|
||||||
|
var globalSearch = this.instance.search();
|
||||||
|
|
||||||
|
$(this.instance.table().body()).unmark(this.options);
|
||||||
|
this.instance.columns({
|
||||||
|
search: "applied",
|
||||||
|
page: "current"
|
||||||
|
}).nodes().each(function (nodes, colIndex) {
|
||||||
|
var columnSearch = _this2.instance.column(colIndex).search(),
|
||||||
|
searchVal = columnSearch || globalSearch;
|
||||||
|
if (searchVal) {
|
||||||
|
nodes.forEach(function (node) {
|
||||||
|
$(node).mark(searchVal, _this2.options);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return Mark_DataTables;
|
||||||
|
}();
|
||||||
|
|
||||||
|
$(document).on("init.dt.dth", function (event, settings) {
|
||||||
|
if (event.namespace !== "dt") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var dtInstance = $.fn.dataTable.Api(settings);
|
||||||
|
|
||||||
|
var options = null;
|
||||||
|
if (dtInstance.init().mark) {
|
||||||
|
options = dtInstance.init().mark;
|
||||||
|
} else if ($.fn.dataTable.defaults.mark) {
|
||||||
|
options = $.fn.dataTable.defaults.mark;
|
||||||
|
}
|
||||||
|
if (options === null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
new Mark_DataTables(dtInstance, options);
|
||||||
|
});
|
||||||
|
}, window, document);
|
@ -0,0 +1 @@
|
|||||||
|
mark{background:orange;color:black;}
|
@ -0,0 +1,7 @@
|
|||||||
|
/*!***************************************************
|
||||||
|
* datatables.mark.js v1.0.0
|
||||||
|
* https://github.com/julmot/datatables.mark.js
|
||||||
|
* Copyright (c) 2016, Julian Motz
|
||||||
|
* Released under the MIT license https://git.io/voRZ7
|
||||||
|
*****************************************************/
|
||||||
|
"use strict";function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var _createClass=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol?"symbol":typeof a};!function(a,b,c){"function"==typeof define&&define.amd?define(["jquery","datatables","markjs"],function(d){return a(b,c,d)}):"object"===("undefined"==typeof exports?"undefined":_typeof(exports))?(require("datatables"),require("markjs"),a(b,c,require("jquery"))):a(b,c,jQuery)}(function(a,b,c){var d=function(){function a(b,d){if(_classCallCheck(this,a),"function"!=typeof c.fn.mark||"function"!=typeof c.fn.unmark)throw new Error("jquery.mark.js is necessary for datatables.mark.js");this.instance=b,this.options="object"===("undefined"==typeof d?"undefined":_typeof(d))?d:{},this.initMarkListener()}return _createClass(a,[{key:"initMarkListener",value:function(){var a=this;this.instance.on("draw.dt.dth column-visibility.dt.dth column-reorder.dt.dth",this.mark.bind(this)),this.instance.on("destroy",function(){a.instance.off("draw.dt.dth column-visibility.dt.dth column-reorder.dt.dth")}),this.mark()}},{key:"mark",value:function(){var a=this,b=this.instance.search();c(this.instance.table().body()).unmark(this.options),this.instance.columns({search:"applied",page:"current"}).nodes().each(function(d,e){var f=a.instance.column(e).search(),g=f||b;g&&d.forEach(function(b){c(b).mark(g,a.options)})})}}]),a}();c(b).on("init.dt.dth",function(a,b){if("dt"===a.namespace){var e=c.fn.dataTable.Api(b),f=null;e.init().mark?f=e.init().mark:c.fn.dataTable.defaults.mark&&(f=c.fn.dataTable.defaults.mark),null!==f&&new d(e,f)}})},window,document);
|
Loading…
Reference in new issue