Hi all,

Following a request from one of our customers (who was complaining about the date-find field), I recently implemented a new kind of form field that uses the Date Range Picker jQuery plugin (https://www.daterangepicker.com, I'll use "DRP" from now on). This plugin provides a lot of flexibility when it comes to picking a date (with or without time), or a date range. It provides a very standard UI to do so, with a lots of options (https://www.daterangepicker.com/#options).

I chose this plugin because it's a jQuery plugin, with a lot of options that allows to replace both <date-find/> and <date-time/>, and replace jQuery UI date picker (https://jqueryui.com/datepicker/) which is far more less flexible. This plugin is quite old and is not maintained anymore (last commit 4 years ago), but it does the job, and is widely used (so lots of support and resources).

I also considered https://air-datepicker.com/, which is still an active project, is written in pure JavaScript, and does not depend on MomentJS like DRP (which is a problem, see https://momentjs.com/docs/#/-project-status/). In fact it does not depend on anything which is great (and pretty rare in the JS ecosystem...). In fact, as I write, I'm thinking of giving it a shot :).

Anyway.

At first I tried to modify the date-find field, in such a way that it could support the classic UI, or the DRP UI (basically, something that would look like <date-find input-method="classic|dateRangePicker">). After all, why would I introduce another date picker field in OFBiz ?

After a few hours messing around with macros and the Java form builder, it appeared that it would add a lot of complexity to build a single field capable of displaying the standard date picker or the new one (supporting all of the features that DRP offers). I also thought that, for our use case, it could be pretty handy to keep the standard date picker as it is. Also, DRP has at least one limitation compared to the standard : OOTB you cannot search entities where a date field is empty (but it could be implemented on top of it).

So I finally chose to write a new field, <date-range-picker/>, which supports almost all the options that DRP offers (as field's attributes). It is really a wrapper around DRP, more than a generic date picker field. It can be used to pick only one date (like <date-time/>), or a range (like <date-find/>, you can choose to pick time or not, and many other things showcased here : https://www.daterangepicker.com/#examples. In our use case, we plan to use it on a few critical forms (the ones that our client complained about), and keep the <date-find/> everywhere else. If everything goes fine, we will eventually extend its usage.

So my question would be : do you feel that a new date/date-range picker field, with a more fancy UI, would be an interesting addition to the common theme in OFBiz ? Would you have any suggestion about that ? If we go forward, do you have an opinion about wether I should choose DRP or Air Picker (the method would be the same : implement every option that the plugin offers as OFBiz field attributes) ?

Thanks for your time!

Florian

--
Néréide <http://nereide.fr/>
        Florian Motteau
Co-entrepreneur Néréide
informat...@nereide.fr
8 rue des Déportés 37000 TOURS
Std: 02 47 50 30 54
www.nereide.fr <https://nereide.fr/>
Réseau Libre-Entreprise <https://www.libre-entreprise.org/>

Reply via email to