d59939a89c
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Blocked by required conditions
Platform: moko-platform CI / Gate 4: Governance (push) Blocked by required conditions
Platform: moko-platform CI / Gate 5: Template Integrity (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (pull_request) Blocked by required conditions
Platform: moko-platform CI / CI Summary (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (pull_request) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (pull_request) Blocked by required conditions
Platform: moko-platform CI / Gate 3: Self-Health Check (pull_request) Blocked by required conditions
Platform: moko-platform CI / Gate 4: Governance (pull_request) Blocked by required conditions
Platform: moko-platform CI / Gate 5: Template Integrity (pull_request) Blocked by required conditions
Platform: moko-platform CI / CI Summary (pull_request) Blocked by required conditions
Generic: Repo Health / Scripts governance (push) Blocked by required conditions
Generic: Repo Health / Repository health (push) Blocked by required conditions
Generic: Repo Health / Report Issues (push) Blocked by required conditions
Universal: PR Check / Build RC Package (pull_request) Blocked by required conditions
Universal: PR Check / Report Issues (pull_request) Blocked by required conditions
Generic: Repo Health / Scripts governance (pull_request) Blocked by required conditions
Generic: Repo Health / Repository health (pull_request) Blocked by required conditions
Generic: Repo Health / Report Issues (pull_request) Blocked by required conditions
Universal: Auto Version Bump / Version Bump (push) Successful in 21s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 12s
Generic: Repo Health / Access control (push) Successful in 2s
Generic: Repo Health / Site Health (push) Has been skipped
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 9s
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 12s
Platform: moko-platform CI / Gate 1: Code Quality (pull_request) Failing after 40s
Platform: moko-platform CI / Gate 1: Code Quality (push) Failing after 13m29s
IMAP polling scheduled task: - Connects via php-imap, reads UNSEEN messages - Creates tickets from new emails, matches sender to Joomla user - Detects replies via [#123] in subject line - Marks processed emails as seen, optionally moves to folder - IMAP config fields in component options Auto-close scheduled task: - Closes resolved tickets after configurable days - Uses autoclose_days from component params Both registered as Joomla scheduled task types in plg_task_mokosuite_tickets alongside existing automation task.
122 lines
5.2 KiB
XML
122 lines
5.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<config>
|
|
<fieldset name="general" label="General" description="General component settings.">
|
|
<field name="brand_name" type="text" default="MokoSuite"
|
|
label="Brand Name"
|
|
description="Displayed in the admin sidebar, dashboard, and emails."
|
|
hint="MokoSuite" />
|
|
<field name="support_email" type="email" default=""
|
|
label="Support Email"
|
|
description="Reply-to address for outbound notification emails."
|
|
hint="support@example.com" />
|
|
</fieldset>
|
|
|
|
<fieldset name="notifications" label="Email Notifications" description="Configure email recipients for ticket and security notifications.">
|
|
<field name="admin_emails" type="text" default=""
|
|
label="Admin Email Addresses"
|
|
description="Comma-separated email addresses to receive all notifications."
|
|
hint="admin@example.com, support@example.com" />
|
|
<field name="admin_user_ids" type="text" default=""
|
|
label="Admin User IDs"
|
|
description="Comma-separated Joomla user IDs to receive notifications."
|
|
hint="320, 321" />
|
|
<field name="security_alerts" type="radio" default="1"
|
|
label="Security Alerts"
|
|
description="Send email alerts for WAF blocks and admin logins."
|
|
class="btn-group btn-group-yesno">
|
|
<option value="1">JYES</option>
|
|
<option value="0">JNO</option>
|
|
</field>
|
|
|
|
<field name="spacer_ntfy" type="spacer" label="Push Notifications (ntfy)" />
|
|
<field name="ntfy_enabled" type="radio" default="0"
|
|
label="Enable ntfy Push"
|
|
description="Send push notifications via ntfy for ticket and security events."
|
|
class="btn-group btn-group-yesno">
|
|
<option value="1">JYES</option>
|
|
<option value="0">JNO</option>
|
|
</field>
|
|
<field name="ntfy_server" type="url" default="https://ntfy.mokoconsulting.tech"
|
|
label="ntfy Server URL"
|
|
description="Full URL to your ntfy server."
|
|
showon="ntfy_enabled:1" />
|
|
<field name="ntfy_topic" type="text" default="mokosuite-tickets"
|
|
label="Ticket Topic"
|
|
description="ntfy topic name for helpdesk ticket notifications."
|
|
showon="ntfy_enabled:1" />
|
|
<field name="ntfy_security_topic" type="text" default="mokosuite-security"
|
|
label="Security Topic"
|
|
description="ntfy topic name for security alert notifications. Falls back to ticket topic if empty."
|
|
showon="ntfy_enabled:1" />
|
|
<field name="ntfy_token" type="password" default=""
|
|
label="ntfy Auth Token"
|
|
description="Bearer token for authenticated ntfy topics. Leave empty for public topics."
|
|
showon="ntfy_enabled:1" />
|
|
</fieldset>
|
|
|
|
<fieldset name="helpdesk" label="Helpdesk Settings" description="Default helpdesk behavior.">
|
|
<field name="default_category" type="sql" default=""
|
|
label="Default Ticket Category"
|
|
description="Category assigned to tickets without a selection."
|
|
query="SELECT id AS value, title AS text FROM #__mokosuite_ticket_categories WHERE published = 1 ORDER BY ordering" />
|
|
<field name="autoclose_days" type="number" default="7"
|
|
label="Auto-Close After (days)"
|
|
description="Resolved tickets are auto-closed after this many days. 0 = disabled." />
|
|
<field name="kb_search_enabled" type="radio" default="1"
|
|
label="KB Search on Ticket Forms"
|
|
description="Show knowledge base search before ticket submission."
|
|
class="btn-group btn-group-yesno">
|
|
<option value="1">JYES</option>
|
|
<option value="0">JNO</option>
|
|
</field>
|
|
<field name="satisfaction_enabled" type="radio" default="1"
|
|
label="Satisfaction Ratings"
|
|
description="Show rating prompt on resolved tickets."
|
|
class="btn-group btn-group-yesno">
|
|
<option value="1">JYES</option>
|
|
<option value="0">JNO</option>
|
|
</field>
|
|
<field name="max_attachment_size" type="number" default="10"
|
|
label="Max Attachment Size (MB)"
|
|
description="Maximum upload size per file in megabytes." />
|
|
</fieldset>
|
|
|
|
<fieldset name="email_to_ticket" label="Email-to-Ticket (IMAP)" description="Create tickets from incoming emails via IMAP polling.">
|
|
<field name="imap_host" type="text" default=""
|
|
label="IMAP Server"
|
|
description="IMAP hostname (e.g. imap.gmail.com)"
|
|
hint="imap.gmail.com" />
|
|
<field name="imap_port" type="number" default="993"
|
|
label="Port"
|
|
description="IMAP port (993 for SSL, 143 for plain)" />
|
|
<field name="imap_ssl" type="radio" default="1"
|
|
label="Use SSL"
|
|
class="btn-group btn-group-yesno">
|
|
<option value="1">JYES</option>
|
|
<option value="0">JNO</option>
|
|
</field>
|
|
<field name="imap_user" type="text" default=""
|
|
label="Username"
|
|
description="IMAP login username or email address." />
|
|
<field name="imap_password" type="password" default=""
|
|
label="Password"
|
|
description="IMAP password or app-specific password." />
|
|
<field name="imap_folder" type="text" default="INBOX"
|
|
label="Inbox Folder"
|
|
description="IMAP folder to poll for new messages." />
|
|
<field name="imap_processed_folder" type="text" default="INBOX.Processed"
|
|
label="Processed Folder"
|
|
description="Move processed emails to this folder. Leave empty to just mark as read." />
|
|
</fieldset>
|
|
|
|
<fieldset name="permissions" label="COM_MOKOSUITE_ACL_TITLE"
|
|
description="COM_MOKOSUITE_ACL_DESC">
|
|
<field name="rules" type="rules"
|
|
label="COM_MOKOSUITE_ACL_TITLE"
|
|
validate="rules"
|
|
filter="rules"
|
|
component="com_mokosuite"
|
|
section="component" />
|
|
</fieldset>
|
|
</config>
|