aboutsummaryrefslogtreecommitdiff
path: root/plugins/caldav
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/caldav')
-rw-r--r--plugins/caldav/public/event.html8
-rw-r--r--plugins/caldav/routes.go18
2 files changed, 25 insertions, 1 deletions
diff --git a/plugins/caldav/public/event.html b/plugins/caldav/public/event.html
index de755d8..3192344 100644
--- a/plugins/caldav/public/event.html
+++ b/plugins/caldav/public/event.html
@@ -4,13 +4,19 @@
<p>
<a href="/calendar">Back</a>
- ยท <a href="{{.Event.URL}}/update">Edit</a>
</p>
{{$event := index .Event.Data.Events 0}}
<h2>Event: {{$event.Props.Text "SUMMARY"}}</h2>
+<p>
+ <a href="{{.Event.URL}}/update">Edit</a>
+ <form action="{{.Event.URL}}/delete" method="post">
+ <input type="submit" value="Delete">
+ </form>
+</p>
+
<ul>
<li><strong>Start date</strong>: {{$event.DateTimeStart nil | formatdate}}</li>
<li><strong>End date</strong>: {{$event.DateTimeEnd nil | formatdate}}</li>
diff --git a/plugins/caldav/routes.go b/plugins/caldav/routes.go
index 020882e..52f8d31 100644
--- a/plugins/caldav/routes.go
+++ b/plugins/caldav/routes.go
@@ -239,4 +239,22 @@ func registerRoutes(p *alps.GoPlugin, u *url.URL) {
p.GET("/calendar/:path/update", updateEvent)
p.POST("/calendar/:path/update", updateEvent)
+
+ p.POST("/calendar/:path/delete", func(ctx *alps.Context) error {
+ path, err := parseObjectPath(ctx.Param("path"))
+ if err != nil {
+ return err
+ }
+
+ c, _, err := getCalendar(u, ctx.Session)
+ if err != nil {
+ return err
+ }
+
+ if err := c.RemoveAll(path); err != nil {
+ return fmt.Errorf("failed to delete calendar object: %v", err)
+ }
+
+ return ctx.Redirect(http.StatusFound, "/calendar")
+ })
}