Over these last two months, I've been working with Datatables
, an amazing easy-to-setup steroid machine for HTML tables. For the kind of work I'm doing right now, it suits my needs just perfectly.
A couple of weeks ago I needed to build a plugin for DT: MultipleFilters
. As I was finishing building it, I realized some issues had to be fixed.
: The plugin does not approach local processing, only server-side.
Push data to the server without using fnServerData
With minimum coupling in mind, I wanted to find a way that allowed to push data to the server without using the
option in the initializer. That's not what the end user wants, he wants to just download the plugin, place it in and there, it does range filtering.
My suggestion here would be an array of functions (perhaps called
) that allowed any plugin builder to be able to inject parameters to be sent. That way, when my plugin is initialized, I can push my function that injects such parameters and I don't pollute the initializers.
Integrate with other plugins, such as ColVis or ColReorder
Datatables' features that have controls, such as MF, require a DOM object to be returned in the fnInit function. As of now, I am generating the feature with just a button. The actual controls are being appended to the table's footer, with no regard to the column order or state of visualization.
At some point in time, I faced a lot of trouble as I watched multiple controls get spawned across the table, as well as the controls not being switched along with the column being reordered nor being hidden / shown when you check a column with
. Wouldn't it be great if both
had some sort of array of callbacks we could populate? When
toggled a column, I could access it and toggle my filter controls accordingly. When
dragged a column around, I could know which one and to where it moved. All of this without requiring additional initialization and granting cohesion, based on a functional approaching.
For what it's worth, I actually had to hack inside ColReorder and add some code in there so I had to accomplish some integration between MF and CR.
So, is there a need for better integration?
Before I jump into the conclusion, I should say that Allan
did a great job on building Datatables, it's a remarkable piece of software.
I told him that I would risk being stupid to the point of being told to RTFM, but I stand for ease of read as well as ease of use. There should clearly be some plugin development guidelines and I personally volunteer to help build those guidelines. Based on what I know, I would say there is a need to improve integration. If it's not for how it's built, it would by the way it's told.