From ee9602c745dce9852f473d251a8a1b6f5e03eed5 Mon Sep 17 00:00:00 2001 From: Timur Ismagilov Date: Mon, 6 Jun 2022 19:12:56 +0300 Subject: [PATCH] Interwiki: Add the add entry form --- interwiki/view_interwiki.html | 76 +++++++++++++++++++++++++++++------ interwiki/web.go | 2 + interwiki/wiki.go | 19 ++++----- static/default.css | 17 ++++++++ 4 files changed, 90 insertions(+), 24 deletions(-) diff --git a/interwiki/view_interwiki.html b/interwiki/view_interwiki.html index 4bfc94e..150d7a3 100644 --- a/interwiki/view_interwiki.html +++ b/interwiki/view_interwiki.html @@ -1,16 +1,14 @@ {{define "interwiki map"}}Interwiki map{{end}} {{define "title"}}{{template "interwiki map"}}{{end}} -{{define "body"}} -
-

{{template "interwiki map"}}

{{$emojies := .Emojies}} - {{if len .Entries}} - + {{else}} +

No interwiki map set.

+ {{end}} +{{end}} + +{{define "authorized map"}} + {{if .Error}} +

{{.Error}}

+ {{end}} + {{template "static map" .}} +
+

Add interwiki entry

+

Documentation.

+

+ + +

+

+ + +

+

+ + +

+

Fill the next two fields if you have chosen Generic in the previous field.

+

+ + +

+

+ + +

+ +
+{{end}} + +{{define "body"}} +
+

{{template "interwiki map"}}

+ {{if .CanEdit}} + {{template "authorized map" .}} {{else}} -

No interwiki map set.

+ {{template "static map" .}} {{end}}
{{end}} \ No newline at end of file diff --git a/interwiki/web.go b/interwiki/web.go index 21c4a14..7ced6cd 100644 --- a/interwiki/web.go +++ b/interwiki/web.go @@ -29,6 +29,7 @@ type interwikiData struct { // Emojies contains emojies that represent wiki engines. Emojies[i] is an emoji for Entries[i].Engine Emojies []string CanEdit bool + Error string } func viewInterwiki(meta viewutil.Meta) { @@ -37,6 +38,7 @@ func viewInterwiki(meta viewutil.Meta) { Entries: theMap.list, Emojies: emojiesForEngines(theMap.list), CanEdit: meta.U.Group == "admin", + Error: "", }) } diff --git a/interwiki/wiki.go b/interwiki/wiki.go index a2b33e0..87603c7 100644 --- a/interwiki/wiki.go +++ b/interwiki/wiki.go @@ -11,21 +11,20 @@ type WikiEngine int const ( Mycorrhiza WikiEngine = iota - OddMuse - MediaWiki - MoinMoin1 - MoinMoin2 - DokuWiki + Agora // Generic is any website. Generic ) // EmojiWithName returns a Unicode emoji that kinda represents the engine and the engine name. One day we might move to actual images. OK for now. +// TODO: reconsider func (we WikiEngine) EmojiWithName() string { switch we { case Mycorrhiza: return "๐Ÿ„ Mycorrhiza" - case OddMuse: + case Agora: + return "แผ€ Agora" + /*case OddMuse: Might return them in the future return "๐Ÿซ OddMuse" case MediaWiki: return "๐ŸŒป MediaWiki" @@ -34,7 +33,7 @@ func (we WikiEngine) EmojiWithName() string { case MoinMoin2: return "โ“‚๏ธ MoinMoin 2.*" case DokuWiki: - return "๐Ÿ“ DokuWiki" + return "๐Ÿ“ DokuWiki"*/ default: return "๐ŸŒ Generic" } @@ -67,11 +66,7 @@ type Wiki struct { var wikiEnginesLookup = map[string]WikiEngine{ "mycorrhiza": Mycorrhiza, - "oddmuse": OddMuse, - "mediawiki": MediaWiki, - "moin1": MoinMoin1, - "moin2": MoinMoin2, - "dokuwiki": DokuWiki, + "agora": Agora, "generic": Generic, } diff --git a/static/default.css b/static/default.css index 518d270..26e52ee 100644 --- a/static/default.css +++ b/static/default.css @@ -865,4 +865,21 @@ dt { } dd + dt { margin-top: .5rem; +} + +/* + * Interwiki page + * A possible improvement: show those two fields when Generic is selected, hide otherwise + */ +body[data-rrh-addr^="/interwiki"] label, +body[data-rrh-addr^="/interwiki"] input[type="text"], +body[data-rrh-addr^="/interwiki"] input[type="url"] { + display: block; + width: 100%; + max-width: 20rem; +} +.required-field::after { + color: red; + content: "*"; + margin-left: .25rem; } \ No newline at end of file