diff options
| author | Bobby <[email protected]> | 2026-03-08 05:43:04 +0530 |
|---|---|---|
| committer | Bobby <[email protected]> | 2026-03-08 05:43:04 +0530 |
| commit | 662dd2069dc8590e8b54823a33726464cf10c4e7 (patch) | |
| tree | 55a740e6114440d7e311afd3f5ba79a7101965f8 /static/js/alert.js | |
| parent | d21ea918864a8b18fef94bbfaec8097444be1b17 (diff) | |
| download | dove-662dd2069dc8590e8b54823a33726464cf10c4e7.tar.xz dove-662dd2069dc8590e8b54823a33726464cf10c4e7.zip | |
feat(domains): enhance TLD and domain management with edit and delete functionality
- Added edit and delete buttons for TLDs in the TLD management interface.
- Implemented a modal confirmation for delete actions across TLDs, mailboxes, users, and aliases.
- Created separate edit pages for domains and TLDs with forms for updating their details.
- Improved user experience by adding alerts for error messages and success notifications.
feat(mail): streamline mailbox management with alias support
- Introduced alias creation and deletion functionality for mailboxes.
- Enhanced mailbox edit interface to include alias management.
- Added dropdowns for selecting users and domains when creating aliases.
fix(alerts): implement alert system for error messages
- Developed a reusable alert component to display error messages.
- Integrated alert dismiss functionality with automatic timeout for user notifications.
refactor: general code improvements and organization
- Updated error handling in the backend to support HTMX requests.
- Refactored redirect functions to handle HTMX redirects appropriately.
Diffstat (limited to 'static/js/alert.js')
| -rw-r--r-- | static/js/alert.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/static/js/alert.js b/static/js/alert.js new file mode 100644 index 0000000..4f9fc21 --- /dev/null +++ b/static/js/alert.js @@ -0,0 +1,28 @@ +function initAlerts() { + document.querySelectorAll("[data-alert]").forEach(function (alert) { + if (alert.dataset.alertInitialized) return; + alert.dataset.alertInitialized = "true"; + + var dismissButton = alert.querySelector("[data-alert-dismiss]"); + var autoTimeout = setTimeout(function () { + dismissAlert(alert); + }, 5000); + + if (dismissButton) { + dismissButton.addEventListener("click", function () { + clearTimeout(autoTimeout); + dismissAlert(alert); + }); + } + }); +} + +function dismissAlert(alert) { + alert.classList.add("dismissing"); + alert.addEventListener("animationend", function () { + alert.remove(); + }); +} + +document.addEventListener("DOMContentLoaded", initAlerts); +document.body.addEventListener("htmx:afterSwap", initAlerts); |
