enhancement: LogsModel missing service_id and search filters #230

Open
opened 2026-06-29 14:20:11 +00:00 by jmiller · 1 comment
Owner

Summary

LogsModel only supports filtering by log level. It is missing filter by service and search by message text, which makes it hard to find relevant log entries in a busy system.

Current State

File: source/packages/com_mokosuitecross/src/Model/LogsModel.php

Current filters:

  • filter.level -- filter by info/warning/error

Missing Filters

1. Filter by service_id

$serviceId = $this->getState('filter.service_id');

if (!empty($serviceId)) {
    $query->where($db->quoteName('a.service_id') . ' = ' . (int) $serviceId);
}

2. Search by message text

$search = $this->getState('filter.search');

if (!empty($search)) {
    $search = '%' . $db->escape(trim($search), true) . '%';
    $query->where($db->quoteName('a.message') . ' LIKE ' . $db->quote($search));
}

3. Add filter_fields

Add 'service_id', 'a.service_id' to the $config['filter_fields'] array.

Comparison

  • PostsModel has: status, service_id, search (article title + message)
  • ServicesModel has: published, service_type
  • LogsModel has: level only

Impact

  • Severity: Low
  • Usability -- admins cannot search logs by service or message text
  • Also needs corresponding filter XML in the view's tmpl/default.php or filter form
## Summary `LogsModel` only supports filtering by log level. It is missing filter by service and search by message text, which makes it hard to find relevant log entries in a busy system. ## Current State **File:** `source/packages/com_mokosuitecross/src/Model/LogsModel.php` Current filters: - `filter.level` -- filter by info/warning/error ## Missing Filters ### 1. Filter by service_id ```php $serviceId = $this->getState('filter.service_id'); if (!empty($serviceId)) { $query->where($db->quoteName('a.service_id') . ' = ' . (int) $serviceId); } ``` ### 2. Search by message text ```php $search = $this->getState('filter.search'); if (!empty($search)) { $search = '%' . $db->escape(trim($search), true) . '%'; $query->where($db->quoteName('a.message') . ' LIKE ' . $db->quote($search)); } ``` ### 3. Add filter_fields Add `'service_id', 'a.service_id'` to the `$config['filter_fields']` array. ## Comparison - `PostsModel` has: status, service_id, search (article title + message) - `ServicesModel` has: published, service_type - `LogsModel` has: level only ## Impact - **Severity:** Low - Usability -- admins cannot search logs by service or message text - Also needs corresponding filter XML in the view's `tmpl/default.php` or filter form
Author
Owner

Branch created: feature/230-enhancement-logsmodel-missing-service-id

git fetch origin
git checkout feature/230-enhancement-logsmodel-missing-service-id
Branch created: [`feature/230-enhancement-logsmodel-missing-service-id`](https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteCross/src/branch/feature/230-enhancement-logsmodel-missing-service-id) ```bash git fetch origin git checkout feature/230-enhancement-logsmodel-missing-service-id ```
Sign in to join this conversation.
No labels
Priority Medium
Type Feature
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoSuiteCross#230