diff --git a/conferenceadmin.go b/conferenceadmin.go index 62716b3..2597933 100644 --- a/conferenceadmin.go +++ b/conferenceadmin.go @@ -123,6 +123,35 @@ func EditConference(ctxt ui.AmContext) (string, any, error) { return "redirect", fmt.Sprintf("/comm/%s/conf/%s/manage", comm.Alias, ctxt.GetScratch("currentAlias")), nil } +/* ConferenceAliasForm displays the form for managing conference aliases. + * Parameters: + * ctxt - The AmContext for the request. + * Returns: + * Command string dictating what to be rendered. + * Data as a parameter for the command string. + * Standard Go error status. + */ +func ConferenceAliasForm(ctxt ui.AmContext) (string, any, error) { + comm := ctxt.CurrentCommunity() + conf := ctxt.GetScratch("currentConference").(*database.Conference) + myLevel := ctxt.GetScratch("levelInConference").(uint16) + if !conf.TestPermission("Conference.Change", myLevel) { + ctxt.SetRC(http.StatusForbidden) + return ui.ErrorPage(ctxt, ENOPERM) + } + + aliases, err := conf.Aliases(ctxt.Ctx()) + if err != nil { + return ui.ErrorPage(ctxt, err) + } + + ctxt.VarMap().Set("aliases", aliases) + ctxt.VarMap().Set("confName", conf.Name) + ctxt.VarMap().Set("backLink", fmt.Sprintf("/comm/%s/conf/%s/manage", comm.Alias, ctxt.GetScratch("currentAlias"))) + ctxt.VarMap().Set("amsterdam_pageTitle", fmt.Sprintf("Manage Conference Aliases: %s", conf.Name)) + return "framed_template", "conf_aliases.jet", nil +} + /* CreateConferenceForm displays the dialog for creating a new conference. * Parameters: * ctxt - The AmContext for the request. diff --git a/main.go b/main.go index 8c6d207..0642376 100644 --- a/main.go +++ b/main.go @@ -114,6 +114,7 @@ func setupEcho() *echo.Echo { confGroup.GET("/fixseen", ui.AmWrap(ConfFixseen)) confGroup.GET("/edit", ui.AmWrap(EditConferenceForm)) confGroup.POST("/edit", ui.AmWrap(EditConference)) + confGroup.GET("/aliases", ui.AmWrap(ConferenceAliasForm)) confGroup.GET("/hotlist", ui.AmWrap(AddToHotlist)) confGroup.GET("/invite", ui.AmWrap(InviteToConference)) confGroup.GET("/r/:topic", ui.AmWrap(ReadPosts), ui.SetTopic) diff --git a/ui/menudefs.yaml b/ui/menudefs.yaml index 839d067..1578bf2 100644 --- a/ui/menudefs.yaml +++ b/ui/menudefs.yaml @@ -94,7 +94,7 @@ menudefs: - text: "Change Conference Information" link: "/comm/[CID]/conf/[CONFID]/edit" - text: "Manage Conference Aliases" - link: "/TODO/comm/[CID]/conf/[CONFID]/aliases" + link: "/comm/[CID]/conf/[CONFID]/aliases" - text: "Manage Conference Members" link: "/TODO/comm/[CID]/conf/[CONFID]/members" - text: "Customize Conference Appearance" diff --git a/ui/views/conf_aliases.jet b/ui/views/conf_aliases.jet new file mode 100644 index 0000000..2d0dde7 --- /dev/null +++ b/ui/views/conf_aliases.jet @@ -0,0 +1,48 @@ +{* + * Amsterdam Web Communities System + * Copyright (c) 2025-2026 Erbosoft Metaverse Design Solutions, All Rights Reserved + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + *} +