Skip to content

refactored UI to quickform

jaapjansma requested to merge quickform_ui into master

This merge request contains a new user interface for the form processor. The new user interface is made with quickforms, instead of Angular.

When I started with the form processor, Angular was a new technology in the civicrm community, so I decided to build this module in Angular so that I could familiarize myself with Angular. Which went quite well till issues started appearing. The issues where all related by large sets of data. For example a client of my has 70+ different activity types, each with a lot of custom fields. So showing the mapping of an activity action gives a drop down with hundreds (maybe thousand) of options. Loading this in the angular user interface slowed than the select2 functionality of the drop down. Which led to loading time a form processor edit screen of a couple of minutes. I did find a solution for this but that took me to rewrite the angular and select2 integration specially for the form processor. In addition building this kind of user interface in quick form does not give any performance issue as all the work could be done on the server.

After this I have not done any new angular development anymore but rather sticked to the proven quickform technology (if it aint broken don't fix it). See for example the data processor extension, or search action designer, or the expense extension which are all made by me after the development of the form processor.

Also there have been recent talks about switching angular to reactjs in the CiviCRM community so this gives me a sense that angular is not a well proven technology anyways to move forward (although I have to admit that the whole searchkit and form builder are in angular and those work quite smooth).

So basically my options where as follows:

  • Stick with angular, where I do differently then how angular is used in searchkit
  • Rebuild with searchkit and form builder. This would bring me into a new interesting path, learning how to build custom screens in search kit
  • Rebuild with ReactJs. This would also lead me onto a new path, learning reactjs.
  • Rebuild with quickform. A technology I found proven its worth. Of the other two options this is also less effort.

Merge request reports