adwise/module-admin-activity-dashboard

Hyvä Commerce Admin Dashboard widget that displays recent admin activity from the Mage-OS Admin Activity Log, with filters and inline field-change diffs

Maintainers

Package info

github.com/adwise/hyva-commerce-audit-trail-widget

Type:magento2-module

pkg:composer/adwise/module-admin-activity-dashboard

Transparency log

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.0 2026-07-02 12:58 UTC

This package is auto-updated.

Last update: 2026-07-02 15:01:27 UTC


README

Adwise

Recent Admin Activity — Hyvä Commerce Dashboard Widget

A widget for the Hyvä Commerce Admin Dashboard that puts your store's audit trail front and center: who changed what, when — and exactly which fields went from which value to which, expandable inline per row.

The audit data comes from the excellent mage-os/module-admin-activity-log; this module adds the dashboard surface on top of it.

Recent Admin Activity widget

Features

  • Activity table — time, admin (with initials avatar), color-coded action badge, area, and a direct link to the edited item
  • Inline field diffs — expand any row to see old value → new value per changed field, without leaving the dashboard
  • Filters — narrow the list by admin, time range (last hour / 24 hours / 7 days), action, or area, instantly and client-side
  • Noise suppression — type-juggling artifacts (100100.0000), falsy-equivalent transitions (0(empty)), and request-scoped bookkeeping fields are filtered out of the diff, so only real changes show
  • Configurable — row limit per widget instance; diff entries capped with a "+N more" summary; a trailing action links to the full activity log grid
  • Access control — visibility is gated by the MageOS_AdminActivityLog::activity ACL resource, matching the activity log grid itself

Requirements

Dependency Version
Magento Open Source / Adobe Commerce / Mage-OS 2.4.x
PHP 8.2+
mage-os/module-admin-activity-log ^2.0
hyva-themes/commerce-module-admin-dashboard-api ^3.0
hyva-themes/commerce-module-admin-dashboard ^2.0

The Hyvä packages are distributed through Hyvä's Packagist repository, so a Hyvä Commerce license is required.

Installation

composer require adwise/module-admin-activity-dashboard
bin/magento module:enable MageOS_AdminActivityLog Adwise_AdminActivityDashboard
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush

Usage

  1. Open the admin Dashboard.
  2. Click Add Widget and pick Recent Admin Activity (under the System category).
  3. Set the number of activities to display and save.

Rows link to the edited item; rows with recorded field changes show a chevron that expands the diff. View Full Activity Log opens the complete grid provided by the Mage-OS module.

Configuration

Noise fields

Some modules stamp bookkeeping fields onto models during admin saves (a preview theme, a current store id), which the activity log records as "changes" even though nobody edited them. The widget hides these via a di.xml argument you can extend from your own module:

<type name="Adwise\AdminActivityDashboard\Model\FieldChangeFilter">
    <arguments>
        <argument name="noiseFields" xsi:type="array">
            <item name="my_bookkeeping_field" xsi:type="string">my_bookkeeping_field</item>
        </argument>
    </arguments>
</type>

Suppression only affects the widget's diff view — the full activity log grid keeps every recorded change, so your audit trail stays complete.

Row limit default

The default number of rows (10) can also be changed via di.xml:

<type name="Adwise\AdminActivityDashboard\Model\Widget\RecentActivity">
    <arguments>
        <argument name="defaultLimit" xsi:type="number">25</argument>
    </arguments>
</type>

How it works

The widget implements Hyvä's composition-based WidgetTypeInterface from the commerce-module-admin-dashboard-api contract package and is rendered by the Admin Dashboard runtime. Data is read through the Mage-OS module's ActivityRepositoryInterface; field diffs come from its admin_activity_log table and pass through a small FieldChangeFilter service before display. Filtering in the widget is done client-side with Alpine.js over the loaded rows.

License

MIT