A lightweight and native audio recording plugin for MantisBT. It allows users to record voice notes directly in the browser and attach them to comments (bugnotes) or bug reports.
- Native Browser Recording: Powered by the HTML5
MediaRecorderAPI. No third-party plugins, Flash, or external dependencies required. - Format Compatibility: Automatically detects and selects the best supported container and codec for the active browser (
audio/mp4on Safari/iOS,audio/webmon Chrome/Firefox,audio/ogg, oraudio/wav). - Live Waveform Visualizer: Renders a real-time voice frequency visualizer using the HTML5
<canvas>and Web Audio API (AnalyserNode) so users have instant visual feedback of their audio capture. - Seamless Form Integration: Automatically attaches to any
textarearesiding within a form that supports uploads. It displays a clean "Record Audio" button that triggers a recording state overlay with an active timer, cancel, and save actions. - Dropzone Queue Injection: Programmatically injects the recorded file directly into MantisBT's native Dropzone upload queue (or falls back to standard file inputs using
DataTransfer), ensuring the audio note is securely sent along with the note submission. - Inline Audio Player: The attached audio files are natively recognized by MantisBT and rendered with an HTML5
<audio>player inline under the corresponding bugnote in the issue history list. - Multi-language Support: Includes localization strings for English, Portuguese (Standard), and Portuguese (Brazil).
- Apache Restriction Compliance: Assets are loaded via
plugin_file.phpat the public root to bypass.htaccessfolder blocks (e.g.,Require all deniedonplugins/), ensuring no403 Forbiddenlogs are generated and preventing firewall scripts (like Wail2ban) from auto-blocking users.
- Copy the
AudioNotesfolder into theplugins/directory of your MantisBT installation. - Log in to your MantisBT instance as an administrator.
- Navigate to Manage -> Manage Plugins.
- Find Audio Notes in the Available Plugins list and click Install.
- Hooks used:
EVENT_LAYOUT_RESOURCES(injects custom assets). - Core files:
AudioNotes.php: Plugin declaration, hooks, and dynamic translation serialization.files/audionotes.js: Web Audio API, MediaRecorder lifecycle management, and Dropzone injection.files/audionotes.css: Styling for the record button, visualizer canvas, timer, and animations.lang/strings_*.txt: Language translation files.

