aboutsummaryrefslogtreecommitdiff
path: root/pages
diff options
context:
space:
mode:
authorBobby <[email protected]>2026-03-08 05:43:04 +0530
committerBobby <[email protected]>2026-03-08 05:43:04 +0530
commit662dd2069dc8590e8b54823a33726464cf10c4e7 (patch)
tree55a740e6114440d7e311afd3f5ba79a7101965f8 /pages
parentd21ea918864a8b18fef94bbfaec8097444be1b17 (diff)
downloaddove-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 'pages')
-rw-r--r--pages/domain/domain.go32
-rw-r--r--pages/mail/mailboxes.go19
-rw-r--r--pages/mail/users.go19
3 files changed, 68 insertions, 2 deletions
diff --git a/pages/domain/domain.go b/pages/domain/domain.go
index cb1022b..7c99f21 100644
--- a/pages/domain/domain.go
+++ b/pages/domain/domain.go
@@ -1,6 +1,8 @@
package domain
import (
+ "strconv"
+
domainService "dove/services/domain"
"dove/utils/meta"
"dove/utils/shortcuts"
@@ -28,7 +30,37 @@ func NewDomain(context *fiber.Ctx) error {
return shortcuts.Render(context, "domains/newdomain", domainService.DomainFormData())
}
+func EditDomain(context *fiber.Ctx) error {
+ domainID, parseError := strconv.ParseUint(meta.Request(context).Param("id"), 10, 64)
+ if parseError != nil {
+ return shortcuts.BadRequestError(context, parseError)
+ }
+
+ formData, serviceError := domainService.EditDomainFormData(uint(domainID))
+ if serviceError != nil {
+ return shortcuts.HandleError(context, serviceError)
+ }
+
+ meta.SetPageTitle(context, "Edit Domain")
+ return shortcuts.Render(context, "domains/editdomain", formData)
+}
+
func NewTLD(context *fiber.Ctx) error {
meta.SetPageTitle(context, "New TLD")
return shortcuts.Render(context, "domains/newtld", nil)
}
+
+func EditTLD(context *fiber.Ctx) error {
+ tldID, parseError := strconv.ParseUint(meta.Request(context).Param("id"), 10, 64)
+ if parseError != nil {
+ return shortcuts.BadRequestError(context, parseError)
+ }
+
+ formData, serviceError := domainService.EditTLDFormData(uint(tldID))
+ if serviceError != nil {
+ return shortcuts.HandleError(context, serviceError)
+ }
+
+ meta.SetPageTitle(context, "Edit TLD")
+ return shortcuts.Render(context, "domains/edittld", formData)
+} \ No newline at end of file
diff --git a/pages/mail/mailboxes.go b/pages/mail/mailboxes.go
index 36d9041..f679839 100644
--- a/pages/mail/mailboxes.go
+++ b/pages/mail/mailboxes.go
@@ -1,6 +1,8 @@
package mail
import (
+ "strconv"
+
mailService "dove/services/mail"
"dove/utils/meta"
"dove/utils/shortcuts"
@@ -13,6 +15,21 @@ func NewMailbox(context *fiber.Ctx) error {
return shortcuts.Render(context, "mail/newmailbox", mailService.MailboxFormData())
}
+func EditMailbox(context *fiber.Ctx) error {
+ mailboxID, parseError := strconv.ParseUint(meta.Request(context).Param("id"), 10, 64)
+ if parseError != nil {
+ return shortcuts.BadRequestError(context, parseError)
+ }
+
+ formData, serviceError := mailService.EditMailboxFormData(uint(mailboxID))
+ if serviceError != nil {
+ return shortcuts.HandleError(context, serviceError)
+ }
+
+ meta.SetPageTitle(context, "Edit Mailbox")
+ return shortcuts.Render(context, "mail/editmailbox", formData)
+}
+
func Mailboxes(context *fiber.Ctx) error {
meta.SetPageTitle(context, "Mailboxes")
@@ -21,4 +38,4 @@ func Mailboxes(context *fiber.Ctx) error {
search := context.Query("search")
return shortcuts.Render(context, "mail/mailboxes", mailService.ListMailboxes(pagination, sorting, search))
-}
+} \ No newline at end of file
diff --git a/pages/mail/users.go b/pages/mail/users.go
index 8700c80..6fe057d 100644
--- a/pages/mail/users.go
+++ b/pages/mail/users.go
@@ -1,6 +1,8 @@
package mail
import (
+ "strconv"
+
mailService "dove/services/mail"
"dove/utils/meta"
"dove/utils/shortcuts"
@@ -13,6 +15,21 @@ func NewUser(context *fiber.Ctx) error {
return shortcuts.Render(context, "mail/newuser", nil)
}
+func EditUser(context *fiber.Ctx) error {
+ userID, parseError := strconv.ParseUint(meta.Request(context).Param("id"), 10, 64)
+ if parseError != nil {
+ return shortcuts.BadRequestError(context, parseError)
+ }
+
+ formData, serviceError := mailService.EditUserFormData(uint(userID))
+ if serviceError != nil {
+ return shortcuts.HandleError(context, serviceError)
+ }
+
+ meta.SetPageTitle(context, "Edit User")
+ return shortcuts.Render(context, "mail/edituser", formData)
+}
+
func Users(context *fiber.Ctx) error {
meta.SetPageTitle(context, "Users")
@@ -21,4 +38,4 @@ func Users(context *fiber.Ctx) error {
search := context.Query("search")
return shortcuts.Render(context, "mail/users", mailService.ListUsers(pagination, sorting, search))
-}
+} \ No newline at end of file