I found myself needing a front-end user interface for the Lucee server version 5.3.3+62 scheduled tasks (which includes the new unique property), which would run inside my web app and mimic what is already there in the Administrator. Since there wasn’t one I could find, I built it. While creating a modern UI was fairly easy to do with Bootstrap 4 and jQuery, I thought it might be useful to have it published as a module on ForgeBox for anyone else to use.
My goals for this first module were for it to offer:
- List of scheduled tasks.
- Add a new task.
- Edit task.
- Delete task.
- Resume task.
- Pause task.
- Pause all tasks.
- Resume all tasks.
- Validation for add/edit task.
The final product includes:
- UI – Bootstrap 4.
- UI – jQuery for AJAX asynchronous requests (resume, pause tasks).
- ColdBox – module mementifier.
- ColdBox – module cbmessagebox.
- ColdBox – module cbvalidation.
Here is what the scheduled task list looks like:
Adding a new task form:
I deviated a little from the instructions on how to publish a module to ForgeBox. First I created a ColdBox site using CommandBox.
Then I created a repository on my Github account to host the module, and pushed the code there once I had it completed. You can see the entire box.json file under the module containing all of the module properties, but the most important ones that ForgeBox needs are:
I was finally ready to publish my module on ForgeBox, so within CommandBox I used these commands.
That last code published my module under the URL https://www.forgebox.io/view/lucee-scheduled-tasks. Anyone can now install this module using the ForgeBox slug, or just my Github repository URL.
Overall I found the ColdBox module creation and the ForgeBox publishing process very intuitive and easy to do. Kudos to the Ortus team for their continuous hard work. Feel free to take my module for a spin, and let me know your thoughts.