SOC 2021: Cronjobs - Week 1 and 2
- Design database tables: While still due changes as the outlook for the component, including the plugin API and triggers, become clearer and more refined, a rough functional database structure was one of the first things implemented as the development process began. Since then it has received 3 updates, the latest of which was as recent as the day before, to address various problems that emerged as the management views were implemented.
- Lay out the component boilerplate: As the initial database design phase came to a close, the next step was to lay out the boilerplate files and code for the component. This included the manifest, the configuration, language and other files as well as the MVC classes for initially the
CronjobsViewand later the
SelectPluginView(due a rename to simply
- Add ACL support: Support for access control, both for the component and individual cronjobs, was gradually added as the development process for the 2 management views was underway.
- Implement the list view MVC for Cronjobs: The list view (
CronjobsView) was the first part of the development process that was apparent in the Joomla! Administrator frontend. One of the major learning curves in getting started with this was setting up a debugging workflow and getting familiar with the control flows within Joomla! In this process, I had great support from my mentor Benjamin Trenkle, who was clear that he would be there for any help to speed up the process. With that, I implemented what is now the default view of the component. It would be remiss of me not to mention that as of the time of writing this report, this view has a few rough edges and is due an update that reflects changes in the component since, as well as support for Cronjob sorting, filtering and db operations. However, this is a proces I'm leaving out for when the component has a few more moving parts in place.
- Implement the Add/Edit Cronjob MVC: The first part of the
CronjobViewimplementation process was to finally get to adding the component's main
JTableclass. Following this, the MVC classes for the view were implemented and refined so that the manipulation and reflection of all parts of a Cronjob's database entry, as they existed at the time of implementation, was possible.
Links for the Repository and Relevant Pull Request(s)