From 6f542ae93c6d180dceb8102c030b199bfd19a4f6 Mon Sep 17 00:00:00 2001 From: Louis Ouellet Date: Tue, 2 Sep 2025 08:26:46 -0400 Subject: [PATCH 1/3] General: Version bumped to v0.0.18 --- VERSION | 2 +- info.cfg | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/VERSION b/VERSION index 9e2dabb..4974c8e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v0.0.17 +v0.0.18 diff --git a/info.cfg b/info.cfg index 3bcd46f..3b047e8 100644 --- a/info.cfg +++ b/info.cfg @@ -4,8 +4,8 @@ "base": "process", "author": "LaswitchTech", "email": "support@laswitchtech.com", - "date": "2025-08-28", - "version": "v0.0.17", + "date": "2025-09-02", + "version": "v0.0.18", "tags": "process, task, management, workflow, automation", "description": "This plugin provides a comprehensive system for managing task processes, allowing users to create, edit, and monitor workflows. It includes features such as process creation, task assignment, and progress tracking, enabling efficient automation of tasks within the application.", "repository": "https://github.com/LaswitchTech/core-plugin-process", From 8936a1e5b85791553b00bc7d98254d0af42c69eb Mon Sep 17 00:00:00 2001 From: Louis Ouellet Date: Tue, 9 Sep 2025 11:51:37 -0400 Subject: [PATCH 2/3] General: Updated the database schematics --- Install/Data/processes.required | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Install/Data/processes.required b/Install/Data/processes.required index 1d6162b..2a47a60 100644 --- a/Install/Data/processes.required +++ b/Install/Data/processes.required @@ -6,7 +6,7 @@ "owner": "demo", "category": "Lead", "description": "This is the lead process. It describes all the stages, steps and tasks that need to be accomplished.", - "process": "{\"1\": {\"icon\": \"folder\", \"name\": \"Open\", \"color\": \"primary\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Open\", \"value\": null, \"emphasize\": null, \"isDisabled\": true, \"onComplete\": null, \"description\": \"Open the Lead.\", \"isCompleted\": false}}, \"description\": \"Opening the Lead.\", \"isCompleted\": false}, \"2\": {\"icon\": \"eyeglasses\", \"name\": \"Vetting\", \"color\": \"pink\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Learn about the Lead\", \"value\": null, \"emphasize\": null, \"isDisabled\": false, \"onComplete\": null, \"description\": \"Review the Lead's Website, Social Media, and other online presence.\", \"isCompleted\": false}, \"2\": {\"cost\": 0, \"name\": \"Check the accuracy of the information\", \"value\": null, \"emphasize\": null, \"isDisabled\": false, \"onComplete\": null, \"description\": \"Check the accuracy of the information provided by the Lead.\", \"isCompleted\": false}, \"3\": {\"cost\": 0, \"name\": \"Retrieve the Website\", \"value\": \"website\", \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_hasvCardProperty\", \"description\": \"Retrieve the lead's website.\", \"isCompleted\": false}, \"4\": {\"cost\": 0, \"name\": \"Retrieve the Logo\", \"value\": null, \"emphasize\": null, \"isDisabled\": false, \"onComplete\": null, \"description\": \"Retrieve the lead's logo from the website. And save it as logo on the file.\", \"isCompleted\": false}}, \"description\": \"Learn about this Lead and Evaluate if it's a good fit.\", \"isCompleted\": false}, \"3\": {\"icon\": \"person-add\", \"name\": \"Assign\", \"color\": \"purple\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Assign a Marketer\", \"value\": null, \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_TaskAssign\", \"description\": \"Assign a Marketer to the Lead.\", \"isCompleted\": false}, \"2\": {\"cost\": 0, \"name\": \"Activate the task\", \"value\": null, \"emphasize\": null, \"isDisabled\": true, \"onComplete\": \"process_function_TaskActivate\", \"description\": \"Activate the task and make it available for the Marketer.\", \"isCompleted\": false}}, \"description\": \"Assign a Marketer to the Lead.\", \"isCompleted\": false}, \"4\": {\"icon\": \"telephone\", \"name\": \"Contact\", \"color\": \"light\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Schedule a Call\", \"value\": \"Call\", \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_FollowupCreate\", \"description\": \"Schedule a call with the Prospect.\", \"isCompleted\": false}}, \"description\": \"Make contact with the Prospect.\", \"isCompleted\": false}, \"5\": {\"icon\": \"arrow-repeat\", \"name\": \"In Progress\", \"color\": \"blue\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Create an Authorization Letter\", \"value\": \"AL\", \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_DocumentCreate\", \"description\": \"Create an Authorization Letter to be sent to the prospect along with the agreement.\", \"isCompleted\": false}, \"2\": {\"cost\": 0, \"name\": \"Create an Agreement\", \"value\": \"DRA\", \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_DocumentCreate\", \"description\": \"Create a Dutry Review Agreement\", \"isCompleted\": false}, \"3\": {\"cost\": 0, \"name\": \"Send Agreement\", \"value\": \"DRA\", \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_DocumentSend\", \"description\": \"Send the signed Agreement to the Prospect.\", \"isCompleted\": false}}, \"description\": \"Prepare an Agreement for the Prospect and Present it.\", \"isCompleted\": false}, \"6\": {\"icon\": \"check-circle\", \"name\": \"Profile\", \"color\": \"teal\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Do we have a business number?\", \"value\": \"businessNumber\", \"emphasize\": \"[data-action='edit'][data-vcard]\", \"isDisabled\": true, \"onComplete\": \"process_function_hasvCardProperty\", \"description\": \"Make sure we have the Canada Revenue Agency business number.\", \"isCompleted\": false}, \"2\": {\"cost\": 0, \"name\": \"Do we have an importer extension?\", \"value\": \"importerExtension\", \"emphasize\": \"[data-action='edit'][data-vcard]\", \"isDisabled\": true, \"onComplete\": \"process_function_hasvCardProperty\", \"description\": \"Make sure we have the 6-digit alpha-numerical CBSA RM import-export sub-account.\", \"isCompleted\": false}, \"3\": {\"cost\": 0, \"name\": \"Do we have an information contact?\", \"value\": \"General\", \"emphasize\": \"[data-bs-toggle='tab'][data-name='contacts'], [data-name='contacts'] [data-action='add'], [data-type='contact'] [data-action='edit']\", \"isDisabled\": true, \"onComplete\": \"process_function_hasContact\", \"description\": \"Make sure we have an information contact. Contact with the \\\"General\\\" role.\", \"isCompleted\": false}, \"4\": {\"cost\": 0, \"name\": \"Do we have a billing contact?\", \"value\": \"Billing\", \"emphasize\": \"[data-bs-toggle='tab'][data-name='contacts'], [data-name='contacts'] [data-action='add'], [data-type='contact'] [data-action='edit']\", \"isDisabled\": true, \"onComplete\": \"process_function_hasContact\", \"description\": \"Make sure we have a billing contact. Contact with the \\\"Billing\\\" role.\", \"isCompleted\": false}, \"5\": {\"cost\": 0, \"name\": \"Do we have a documentation contact?\", \"value\": \"Documents\", \"emphasize\": \"[data-bs-toggle='tab'][data-name='contacts'], [data-name='contacts'] [data-action='add'], [data-type='contact'] [data-action='edit']\", \"isDisabled\": true, \"onComplete\": \"process_function_hasContact\", \"description\": \"Make sure we have a documentation contact. Contact with the \\\"Documents\\\" role.\", \"isCompleted\": false}, \"6\": {\"cost\": 0, \"name\": \"Do we have a business account manager?\", \"value\": \"Delegation\", \"emphasize\": \"[data-bs-toggle='tab'][data-name='contacts'], [data-name='contacts'] [data-action='add'], [data-type='contact'] [data-action='edit']\", \"isDisabled\": true, \"onComplete\": \"process_function_hasContact\", \"description\": \"Make sure we have a business account manager contact. Contact with the \\\"Delegation\\\" role.\", \"isCompleted\": false}, \"7\": {\"cost\": 0, \"name\": \"Do we have a signatory contact?\", \"value\": \"Signatory\", \"emphasize\": \"[data-bs-toggle='tab'][data-name='contacts'], [data-name='contacts'] [data-action='add'], [data-type='contact'] [data-action='edit']\", \"isDisabled\": true, \"onComplete\": \"process_function_hasContact\", \"description\": \"Make sure we have a signatory contact. Contact with the \\\"Signatory\\\" role.\", \"isCompleted\": false}, \"8\": {\"cost\": 0, \"name\": \"Create a Client Profile\", \"value\": null, \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_ClientCreate\", \"description\": \"Create a Client Profile for the Prospect.\", \"isCompleted\": false}}, \"description\": \"Validate the information of the client.\", \"isCompleted\": false}, \"7\": {\"icon\": \"vector-pen\", \"name\": \"Agreement\", \"color\": \"info\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Add the Audit Service\", \"value\": \"audit\", \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_ServicesAddProduct\", \"description\": \"Add the Audit Service to the Client Profile and Set the Commission Rates\", \"isCompleted\": false}, \"2\": {\"cost\": 0, \"name\": \"Save the Agreement\", \"value\": null, \"emphasize\": null, \"isDisabled\": false, \"onComplete\": null, \"description\": \"Save the final Agreement on the Prospect.\", \"isCompleted\": false}}, \"description\": \"Save the signed agreement into the Lead Profile.\", \"isCompleted\": false}, \"8\": {\"icon\": \"person-check-fill\", \"name\": \"Allocate\", \"color\": \"dark\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Deactivate the task\", \"value\": null, \"emphasize\": null, \"isDisabled\": true, \"onComplete\": \"process_function_TaskDeactivate\", \"description\": \"Deactivate the task and hide it for the Marketer.\", \"isCompleted\": false}, \"2\": {\"cost\": 0, \"name\": \"Allocate to a Consultant\", \"value\": null, \"emphasize\": null, \"isDisabled\": true, \"onComplete\": \"process_function_ClientIsAllocated\", \"description\": \"Allocate the Client to a Consultant.\", \"isCompleted\": false}, \"3\": {\"cost\": 0, \"name\": \"First Claim Approved\", \"value\": null, \"emphasize\": null, \"isDisabled\": true, \"onComplete\": \"process_function_ClaimHasApproved\", \"description\": \"The first claim has been approved.\", \"isCompleted\": false}}, \"description\": \"Allocate the Client to a Consultant.\", \"isCompleted\": false}, \"9\": {\"icon\": \"arrow-repeat\", \"name\": \"Survey\", \"color\": \"orange\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Activate the task\", \"value\": null, \"emphasize\": null, \"isDisabled\": true, \"onComplete\": \"process_function_TaskActivate\", \"description\": \"Activate the task and make it available for the Marketer.\", \"isCompleted\": false}, \"2\": {\"cost\": 0, \"name\": \"Send Customer Survey\", \"value\": null, \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_SurveyCreate\", \"description\": \"Send a customer survey to the prospect.\", \"isCompleted\": false}, \"3\": {\"cost\": 0, \"name\": \"Create a Recommendation Letter\", \"value\": \"PRAISE\", \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_DocumentCreate\", \"description\": \"Create a recommandation letter for the prospect based on the answers provided in the customer survey.\", \"isCompleted\": false}}, \"description\": \"The claims are currently being processed.\", \"isCompleted\": false}, \"10\": {\"icon\": \"check-circle\", \"name\": \"Completed\", \"color\": \"success\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Mark as Closed\", \"value\": null, \"emphasize\": null, \"isDisabled\": true, \"onComplete\": \"process_function_ClientIsCompleted\", \"description\": \"All Services have been terminated and/or are Completed.\", \"isCompleted\": false}}, \"description\": \"The process is completed\", \"isCompleted\": false}}", + "process": "{\"1\": {\"icon\": \"folder\", \"name\": \"Open\", \"color\": \"primary\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Open\", \"value\": null, \"emphasize\": null, \"isDisabled\": true, \"onComplete\": null, \"description\": \"Open the Lead.\", \"isCompleted\": false}}, \"description\": \"Opening the Lead.\", \"isCompleted\": false}, \"2\": {\"icon\": \"eyeglasses\", \"name\": \"Vetting\", \"color\": \"pink\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Learn about the Lead\", \"value\": null, \"emphasize\": null, \"isDisabled\": false, \"onComplete\": null, \"description\": \"Review the Lead's Website, Social Media, and other online presence.\", \"isCompleted\": false}, \"2\": {\"cost\": 0, \"name\": \"Check the accuracy of the information\", \"value\": null, \"emphasize\": null, \"isDisabled\": false, \"onComplete\": null, \"description\": \"Check the accuracy of the information provided by the Lead.\", \"isCompleted\": false}, \"3\": {\"cost\": 0, \"name\": \"Retrieve the Website\", \"value\": \"website\", \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_hasvCardProperty\", \"description\": \"Retrieve the lead's website.\", \"isCompleted\": false}, \"4\": {\"cost\": 0, \"name\": \"Retrieve the Logo\", \"value\": null, \"emphasize\": null, \"isDisabled\": false, \"onComplete\": null, \"description\": \"Retrieve the lead's logo from the website. And save it as logo on the file.\", \"isCompleted\": false}}, \"description\": \"Learn about this Lead and Evaluate if it's a good fit.\", \"isCompleted\": false}, \"3\": {\"icon\": \"person-add\", \"name\": \"Assign\", \"color\": \"purple\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Assign a Marketer\", \"value\": null, \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_TaskAssign\", \"description\": \"Assign a Marketer to the Lead.\", \"isCompleted\": false}, \"2\": {\"cost\": 0, \"name\": \"Activate the task\", \"value\": null, \"emphasize\": null, \"isDisabled\": true, \"onComplete\": \"process_function_TaskActivate\", \"description\": \"Activate the task and make it available for the Marketer.\", \"isCompleted\": false}}, \"description\": \"Assign a Marketer to the Lead.\", \"isCompleted\": false}, \"4\": {\"icon\": \"telephone\", \"name\": \"Contact\", \"color\": \"light\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Schedule a Call\", \"value\": \"Call\", \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_FollowupCreate\", \"description\": \"Schedule a call with the Prospect.\", \"isCompleted\": false}}, \"description\": \"Make contact with the Prospect.\", \"isCompleted\": false}, \"5\": {\"icon\": \"arrow-repeat\", \"name\": \"In Progress\", \"color\": \"blue\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Create an Authorization Letter\", \"value\": \"AL\", \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_DocumentCreate\", \"description\": \"Create an Authorization Letter to be sent to the prospect along with the agreement.\", \"isCompleted\": false}, \"2\": {\"cost\": 0, \"name\": \"Create an Agreement\", \"value\": \"DRA\", \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_DocumentCreate\", \"description\": \"Create a Dutry Review Agreement\", \"isCompleted\": false}, \"3\": {\"cost\": 0, \"name\": \"Send Agreement\", \"value\": \"DRA\", \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_DocumentSend\", \"description\": \"Send the signed Agreement to the Prospect.\", \"isCompleted\": false}}, \"description\": \"Prepare an Agreement for the Prospect and Present it.\", \"isCompleted\": false}, \"6\": {\"icon\": \"check-circle\", \"name\": \"Profile\", \"color\": \"teal\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Do we have a business number?\", \"value\": \"businessNumber\", \"emphasize\": \"[data-action='edit'][data-vcard]\", \"isDisabled\": true, \"onComplete\": \"process_function_hasvCardProperty\", \"description\": \"Make sure we have the Canada Revenue Agency business number.\", \"isCompleted\": false}, \"2\": {\"cost\": 0, \"name\": \"Do we have an importer extension?\", \"value\": \"importerExtension\", \"emphasize\": \"[data-action='edit'][data-vcard]\", \"isDisabled\": true, \"onComplete\": \"process_function_hasvCardProperty\", \"description\": \"Make sure we have the 6-digit alpha-numerical CBSA RM import-export sub-account.\", \"isCompleted\": false}, \"3\": {\"cost\": 0, \"name\": \"Do we have an information contact?\", \"value\": \"General\", \"emphasize\": \"[data-bs-toggle='tab'][data-name='contacts'], [data-name='contacts'] [data-action='add'], [data-type='contact'] [data-action='edit']\", \"isDisabled\": true, \"onComplete\": \"process_function_hasContact\", \"description\": \"Make sure we have an information contact. Contact with the \\\"General\\\" role.\", \"isCompleted\": false}, \"4\": {\"cost\": 0, \"name\": \"Do we have a billing contact?\", \"value\": \"Billing\", \"emphasize\": \"[data-bs-toggle='tab'][data-name='contacts'], [data-name='contacts'] [data-action='add'], [data-type='contact'] [data-action='edit']\", \"isDisabled\": true, \"onComplete\": \"process_function_hasContact\", \"description\": \"Make sure we have a billing contact. Contact with the \\\"Billing\\\" role.\", \"isCompleted\": false}, \"5\": {\"cost\": 0, \"name\": \"Do we have a documentation contact?\", \"value\": \"Documents\", \"emphasize\": \"[data-bs-toggle='tab'][data-name='contacts'], [data-name='contacts'] [data-action='add'], [data-type='contact'] [data-action='edit']\", \"isDisabled\": true, \"onComplete\": \"process_function_hasContact\", \"description\": \"Make sure we have a documentation contact. Contact with the \\\"Documents\\\" role.\", \"isCompleted\": false}, \"6\": {\"cost\": 0, \"name\": \"Do we have a business account manager?\", \"value\": \"Delegation\", \"emphasize\": \"[data-bs-toggle='tab'][data-name='contacts'], [data-name='contacts'] [data-action='add'], [data-type='contact'] [data-action='edit']\", \"isDisabled\": true, \"onComplete\": \"process_function_hasContact\", \"description\": \"Make sure we have a business account manager contact. Contact with the \\\"Delegation\\\" role.\", \"isCompleted\": false}, \"7\": {\"cost\": 0, \"name\": \"Do we have a signatory contact?\", \"value\": \"Signatory\", \"emphasize\": \"[data-bs-toggle='tab'][data-name='contacts'], [data-name='contacts'] [data-action='add'], [data-type='contact'] [data-action='edit']\", \"isDisabled\": true, \"onComplete\": \"process_function_hasContact\", \"description\": \"Make sure we have a signatory contact. Contact with the \\\"Signatory\\\" role.\", \"isCompleted\": false}, \"8\": {\"cost\": 0, \"name\": \"Create a Client Profile\", \"value\": null, \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_ClientCreate\", \"description\": \"Create a Client Profile for the Prospect.\", \"isCompleted\": false}}, \"description\": \"Validate the information of the client.\", \"isCompleted\": false}, \"7\": {\"icon\": \"vector-pen\", \"name\": \"Agreement\", \"color\": \"info\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Add the Audit Service\", \"value\": \"audit\", \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_ServicesAddProduct\", \"description\": \"Add the Audit Service to the Client Profile and Set the Commission Rates\", \"isCompleted\": false}, \"2\": {\"cost\": 0, \"name\": \"Save the Agreement\", \"value\": null, \"emphasize\": null, \"isDisabled\": false, \"onComplete\": null, \"description\": \"Save the final Agreement on the Prospect.\", \"isCompleted\": false}}, \"description\": \"Save the signed agreement into the Lead Profile.\", \"isCompleted\": false}, \"8\": {\"icon\": \"person-check-fill\", \"name\": \"Allocate\", \"color\": \"dark\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Deactivate the task\", \"value\": null, \"emphasize\": null, \"isDisabled\": true, \"onComplete\": \"process_function_TaskDeactivate\", \"description\": \"Deactivate the task and hide it for the Marketer.\", \"isCompleted\": false}, \"2\": {\"cost\": 0, \"name\": \"Allocate to a Consultant\", \"value\": null, \"emphasize\": null, \"isDisabled\": true, \"onComplete\": \"process_function_ClientIsAllocated\", \"description\": \"Allocate the Client to a Consultant.\", \"isCompleted\": false}, \"3\": {\"cost\": 0, \"name\": \"First Claim Approved\", \"value\": null, \"emphasize\": null, \"isDisabled\": true, \"onComplete\": \"process_function_ClaimHasApproved\", \"description\": \"The first claim has been approved.\", \"isCompleted\": false}}, \"description\": \"Allocate the Client to a Consultant.\", \"isCompleted\": false}, \"9\": {\"icon\": \"check-circle\", \"name\": \"Completed\", \"color\": \"success\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Mark as Closed\", \"value\": null, \"emphasize\": null, \"isDisabled\": true, \"onComplete\": null, \"description\": \"All Services have been terminated and/or are Completed.\", \"isCompleted\": false}}, \"description\": \"The process is completed\", \"isCompleted\": false}, \"10\": {\"icon\": \"arrow-repeat\", \"name\": \"Survey\", \"color\": \"orange\", \"tasks\": {\"1\": {\"cost\": 0, \"name\": \"Activate the task\", \"value\": null, \"emphasize\": null, \"isDisabled\": true, \"onComplete\": \"process_function_TaskActivate\", \"description\": \"Activate the task and make it available for the Marketer.\", \"isCompleted\": false}, \"2\": {\"cost\": 0, \"name\": \"Send Customer Survey\", \"value\": null, \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_SurveyCreate\", \"description\": \"Send a customer survey to the prospect.\", \"isCompleted\": false}, \"3\": {\"cost\": 0, \"name\": \"Create a Recommendation Letter\", \"value\": \"PRAISE\", \"emphasize\": null, \"isDisabled\": false, \"onComplete\": \"process_function_DocumentCreate\", \"description\": \"Create a recommandation letter for the prospect based on the answers provided in the customer survey.\", \"isCompleted\": false}}, \"description\": \"The claims are currently being processed.\", \"isCompleted\": false}}", "organization": 10000, "targetTable": "leads" }, From 20e4882fa3a28cad22cb723bda54d611a72af542 Mon Sep 17 00:00:00 2001 From: Louis Ouellet Date: Tue, 9 Sep 2025 11:52:00 -0400 Subject: [PATCH 3/3] General: Code Clean-up --- routes.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes.cfg b/routes.cfg index 7354e94..9ee8ddd 100644 --- a/routes.cfg +++ b/routes.cfg @@ -26,4 +26,4 @@ "icon": "bar-chart-steps", "color": null } -} +} \ No newline at end of file