Added module params to show/hide individual sections:
- Collapsed by default (toggle)
- Health status
- Stats cards (articles, users, updates)
- Disk usage bar
- Current IP display
- Feature plugin badges
- Quick action buttons
- Joomla/PHP versions
Each section respects its toggle. Plugin badges link to config pages.
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
┌────────────────────────────────────────────────────────────────────┐
│ version_read v04.00.15 │
│ Read version — manifest.xml is canonical, falls back to README.md and Joomla XML│
└────────────────────────────────────────────────────────────────────┘
02.32.11 [skip ci]
- Module body collapsed by default, header row toggles expand/collapse
- Feature plugin badges are now clickable links to plugin config page
- Added extension_id to helper query for URL building
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds MokoOnyx as a git submodule at src/packages/tpl_mokoonyx (pinned
to main branch) so it packages alongside all other MokoWaaS extensions.
Every WaaS site uses both, so installing them as a single package
ensures they stay in sync.
- Added submodule for MokoOnyx repo
- Added template entry to pkg_mokowaas.xml
- Added mokoonyx to protected extensions in script.php
- Added submodules: recursive to CI checkout steps
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
┌────────────────────────────────────────────────────────────────────┐
│ version_read v04.00.15 │
│ Read version — manifest.xml is canonical, falls back to README.md and Joomla XML│
└────────────────────────────────────────────────────────────────────┘
02.32.10 [skip ci]
Atum template has a 'top' position that renders full-width above the
component output inside the content section. Removed the column-span
CSS hack since top position is naturally full-width.
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
┌────────────────────────────────────────────────────────────────────┐
│ version_read v04.00.15 │
│ Read version — manifest.xml is canonical, falls back to README.md and Joomla XML│
└────────────────────────────────────────────────────────────────────┘
02.32.09 [skip ci]
Uses CSS column-span:all with :has() selector to force the module's
parent .module-wrapper to span across all card-columns, rendering as
a full-width card at the top of the dashboard.
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
┌────────────────────────────────────────────────────────────────────┐
│ version_read v04.00.15 │
│ Read version — manifest.xml is canonical, falls back to README.md and Joomla XML│
└────────────────────────────────────────────────────────────────────┘
02.32.08 [skip ci]
Joomla's cpanel view renders quickicon (icon position) modules above
regular cpanel modules. Changed from position=cpanel to position=icon
so MokoWaaS appears at the very top of the admin dashboard.
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
┌────────────────────────────────────────────────────────────────────┐
│ version_read v04.00.15 │
│ Read version — manifest.xml is canonical, falls back to README.md and Joomla XML│
└────────────────────────────────────────────────────────────────────┘
02.32.07 [skip ci]
┌────────────────────────────────────────────────────────────────────┐
│ version_read v04.00.15 │
│ Read version — manifest.xml is canonical, falls back to README.md and Joomla XML│
└────────────────────────────────────────────────────────────────────┘
02.32.06 [skip ci]
- Article count, user count, pending updates with badges
- Disk usage progress bar with color coding
- Current IP display
- Clear Cache button with AJAX spinner
- Check Updates + update count button
- Module defaults to ordering=-1 (top) and access=Super Users
- Added padding to module container
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The CI auto-bump's version_read.php was printing its CliFramework
banner to stdout, which got captured by exec() and injected into
<version> tags via version_set_platform.php's regex replacement.
Root cause fixed in moko-platform (--quiet flag + version format
validation). This commit repairs all corrupted manifests and adds
padding to the cpanel module.
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
┌────────────────────────────────────────────────────────────────────┐
│ version_read v04.00.15 │
│ Read version — manifest.xml is canonical, falls back to README.md and Joomla XML│
└────────────────────────────────────────────────────────────────────┘
02.32.05 [skip ci]
Joomla 5 module templates don't have $this — data comes via extracted
variables from getLayoutData(). Replace $this->escape() with
htmlspecialchars() and remove $app reference.
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
┌────────────────────────────────────────────────────────────────────┐
│ version_read v04.00.15 │
│ Read version — manifest.xml is canonical, falls back to README.md and Joomla XML│
└────────────────────────────────────────────────────────────────────┘
02.32.04 [skip ci]
Admin dashboard module (mod_mokowaas_cpanel) showing:
- MokoWaaS version, debug/offline status badges
- Health indicator (database connectivity check)
- Feature plugin status badges (enabled/disabled)
- Link to full MokoWaaS control panel
- Auto-assigns to cpanel position on install
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
┌────────────────────────────────────────────────────────────────────┐
│ version_read v04.00.15 │
│ Read version — manifest.xml is canonical, falls back to README.md and Joomla XML│
└────────────────────────────────────────────────────────────────────┘
02.32.03 [skip ci]
Joomla 5 expects one <namespace> with the base path — it auto-appends
\Administrator and \Api based on context. Having two <namespace> elements
caused manifest_cache to store only the first, breaking the other context.
Also fixes CI auto-bump mangling the <version> tag.
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
┌────────────────────────────────────────────────────────────────────┐
│ version_read v04.00.15 │
│ Read version — manifest.xml is canonical, falls back to README.md and Joomla XML│
└────────────────────────────────────────────────────────────────────┘
02.32.02 [skip ci]
- GET /api/v1/mokowaas/plugins — list all MokoWaaS feature plugins + status
- POST /api/v1/mokowaas/plugins — toggle a feature plugin on/off
- GET /api/v1/mokowaas/dashboard — combined site info + plugin states summary
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
┌────────────────────────────────────────────────────────────────────┐
│ version_read v04.00.15 │
│ Read version — manifest.xml is canonical, falls back to README.md and Joomla XML│
└────────────────────────────────────────────────────────────────────┘
02.32.01 [skip ci]
- Add admin dashboard to com_mokowaas with site info bar, feature plugin
grid with AJAX toggles, and quick actions (clear cache, check updates)
- Split monolithic system plugin into 4 toggleable feature plugins:
Firewall, Tenant Restrictions, DevTools, and Health Monitor
- Add MokoWaaSHelper utility class for shared master-user detection
- Add static updates.xml (licensing system deferred)
- Restore universal moko-platform workflows
- Add param migration in package script for existing sites
- Fix license key warning to show once per session
- Rename license key messages to "Moko Consulting License Key"
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Wrap all syncpush inserts in try/catch to skip duplicates instead
of failing the entire batch. Add metadata column to categories.
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
fulltext is a MySQL reserved word — must be backtick-quoted.
Menu items require path column for Joomla routing.
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sync methods now use $this->targetUrl and $this->healthToken instead
of function parameters that no longer exist after the bulk push refactor.
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The global API token check reads from query string/header, but
syncclear and syncpush send the token in the JSON POST body.
Skip the global check for these actions.
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
All sync communication (syncclear, syncpush) authenticates via the
target's MokoWaaS health token. Joomla API token is not needed.
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The syncclear/syncpush endpoints authenticate with the target site's
health token. Added health_token field to task config. Removed
api_user field (unused). Removed getHealthToken (read from source).
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
After bulk-inserting content, the target site now:
- Rebuilds category and menu nested set trees (lft/rgt/level)
- Creates #__assets entries for articles and categories (ACL)
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>