mirror of
https://github.com/lichess-org/lila.git
synced 2026-05-26 13:51:00 +00:00
51 lines
1.4 KiB
Scala
51 lines
1.4 KiB
Scala
package controllers
|
|
|
|
import lila.app.*
|
|
|
|
final class Event(env: Env) extends LilaController(env):
|
|
|
|
import env.event.api
|
|
|
|
def show(id: String) = Open:
|
|
FoundPage(api.oneEnabled(id)): event =>
|
|
for html <- env.event.markdown.of(event)
|
|
yield views.event.show(event, html)
|
|
|
|
def manager(page: Int) = Secure(_.ManageEvent) { ctx ?=> _ ?=>
|
|
Ok.async:
|
|
api.pager(page).map(views.event.manager)
|
|
}
|
|
|
|
def edit(id: String) = Secure(_.ManageEvent) { ctx ?=> _ ?=>
|
|
FoundPage(api.one(id)): event =>
|
|
views.event.edit(event, api.editForm(event))
|
|
}
|
|
|
|
def update(id: String) = SecureBody(_.ManageEvent) { ctx ?=> me ?=>
|
|
Found(api.one(id)): event =>
|
|
bindForm(api.editForm(event))(
|
|
err => BadRequest.page(views.event.edit(event, err)),
|
|
data => api.update(event, data).inject(Redirect(routes.Event.edit(id)).flashSuccess)
|
|
)
|
|
}
|
|
|
|
def form = Secure(_.ManageEvent) { ctx ?=> _ ?=>
|
|
Ok.page:
|
|
views.event.create(api.createForm)
|
|
}
|
|
|
|
def create = SecureBody(_.ManageEvent) { ctx ?=> me ?=>
|
|
bindForm(api.createForm)(
|
|
err => BadRequest.page(views.event.create(err)),
|
|
data =>
|
|
api.create(data).map { event =>
|
|
Redirect(routes.Event.edit(event.id)).flashSuccess
|
|
}
|
|
)
|
|
}
|
|
|
|
def cloneE(id: String) = Secure(_.ManageEvent) { ctx ?=> _ ?=>
|
|
FoundPage(api.one(id)): old =>
|
|
views.event.create(api.editForm(api.clone(old)))
|
|
}
|