diff --git a/conferenceadmin.go b/conferenceadmin.go index df05abb..800bbf4 100644 --- a/conferenceadmin.go +++ b/conferenceadmin.go @@ -748,6 +748,36 @@ func ConferenceExport(ctxt ui.AmContext) (string, any) { return "stream", r } +/* ConferenceImport imports data to a conference from a downloaded VCIF file. + * Parameters: + * ctxt - The AmContext for the request. + * Returns: + * Command string dictating what to be rendered. + * Data as a parameter for the command string. + */ +func ConferenceImport(ctxt ui.AmContext) (string, any) { + comm := ctxt.CurrentCommunity() + conf := ctxt.GetScratch("currentConference").(*database.Conference) + myLevel := ctxt.GetScratch("levelInConference").(uint16) + if !conf.TestPermission("Conference.Change", myLevel) { + return "error", ENOPERM + } + + if ctxt.Verb() == "GET" { + ctxt.VarMap().Set("confName", conf.Name) + ctxt.SetFrameTitle("Import Messages: " + conf.Name) + return "framed", "conf_import.jet" + } + + if ctxt.FormFieldIsSet("cancel") { + return "redirect", fmt.Sprintf("/comm/%s/conf/%s/manage", comm.Alias, ctxt.GetScratch("currentAlias")) + } else if !ctxt.FormFieldIsSet("import") { + return "error", EBUTTON + } + + return "error", "Not yet implemented" +} + /* DeleteConference handles the deletion of a conference from its operations menu. * Parameters: * ctxt - The AmContext for the request. diff --git a/main.go b/main.go index 3038cb8..b23127c 100644 --- a/main.go +++ b/main.go @@ -171,6 +171,7 @@ func setupEcho() *echo.Echo { confGroup.POST("/email", ui.AmWrap(ConferenceEmail)) confGroup.GET("/export", ui.AmWrap(ConferenceExportForm)) confGroup.POST("/export", ui.AmWrap(ConferenceExport)) + confGroup.Match(GetAndPost, "/import", ui.AmWrap(ConferenceImport)) confGroup.GET("/delete", ui.AmWrap(DeleteConference)) confGroup.GET("/hotlist", ui.AmWrap(AddToHotlist)) confGroup.GET("/invite", ui.AmWrap(InviteToConference)) diff --git a/ui/menudefs.yaml b/ui/menudefs.yaml index 92d54d7..0d96513 100644 --- a/ui/menudefs.yaml +++ b/ui/menudefs.yaml @@ -106,7 +106,7 @@ menudefs: - text: "Export Messages" link: "/comm/[CID]/conf/[CONFID]/export" - text: "Import Messages" - link: "/TODO/comm/[CID]/conf/[CONFID]/import" + link: "/comm/[CID]/conf/[CONFID]/import" - text: "Delete Conference" link: "/comm/[CID]/conf/[CONFID]/delete" hazard: true diff --git a/ui/views/conf_import.jet b/ui/views/conf_import.jet new file mode 100644 index 0000000..60031d4 --- /dev/null +++ b/ui/views/conf_import.jet @@ -0,0 +1,83 @@ +{* + * 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/. + *} + +
{{ CapitalizeString(errorMessage) }}.
+