diff --git a/appview/pages/templates/repo/new.html b/appview/pages/templates/repo/new.html
index 382e414e..8b37e410 100644
--- a/appview/pages/templates/repo/new.html
+++ b/appview/pages/templates/repo/new.html
@@ -2,42 +2,42 @@
{{ define "content" }}
new repo
-
-
-
{{ end }}
diff --git a/appview/pages/templates/settings/keys.html b/appview/pages/templates/settings/keys.html
index 0fa89b44..5db9b2ab 100644
--- a/appview/pages/templates/settings/keys.html
+++ b/appview/pages/templates/settings/keys.html
@@ -3,36 +3,62 @@
{{ define "content" }}
settings
- profile
- handle: {{ .LoggedInUser.Handle }}
- did: {{ .LoggedInUser.Did }}
- pds: {{ .LoggedInUser.Pds }}
+
+ profile
+
+ - handle
+ - {{ .LoggedInUser.Handle }}
+ - did
+ - {{ .LoggedInUser.Did }}
+ - pds
+ - {{ .LoggedInUser.Pds }}
+
+
- ssh keys
-
+
+ existing keys
+
+ {{ range .PubKeys }}
+ -
+
{{ .Name }}
+ {{ .Key }}
+
+ {{ else }}
+ no ssh keys added yet
+ {{ end }}
+
+
{{ end }}
diff --git a/appview/state/settings.go b/appview/state/settings.go
index 201b61ca..5a5443b4 100644
--- a/appview/state/settings.go
+++ b/appview/state/settings.go
@@ -30,7 +30,7 @@ func (s *State) Settings(w http.ResponseWriter, r *http.Request) {
func (s *State) SettingsKeys(w http.ResponseWriter, r *http.Request) {
switch r.Method {
case http.MethodGet:
- w.Write([]byte("unimplemented"))
+ s.pages.Notice(w, "settings-keys", "Unimplemented.")
log.Println("unimplemented")
return
case http.MethodPut:
@@ -43,11 +43,13 @@ func (s *State) SettingsKeys(w http.ResponseWriter, r *http.Request) {
_, _, _, _, err := ssh.ParseAuthorizedKey([]byte(key))
if err != nil {
log.Printf("parsing public key: %s", err)
+ s.pages.Notice(w, "settings-keys", "That doesn't look like a valid public key. Make sure it's a public key.")
return
}
if err := s.db.AddPublicKey(did, name, key); err != nil {
log.Printf("adding public key: %s", err)
+ s.pages.Notice(w, "settings-keys", "Failed to add public key.")
return
}
@@ -66,11 +68,12 @@ func (s *State) SettingsKeys(w http.ResponseWriter, r *http.Request) {
// invalid record
if err != nil {
log.Printf("failed to create record: %s", err)
+ s.pages.Notice(w, "settings-keys-bad", "Failed to create record.")
return
}
log.Println("created atproto record: ", resp.Uri)
-
+ s.pages.HxLocation(w, "/settings")
return
}
}
diff --git a/input.css b/input.css
index 92353eb5..d07413d9 100644
--- a/input.css
+++ b/input.css
@@ -11,37 +11,52 @@
h1 {
@apply text-2xl;
@apply font-sans;
- @apply text-gray-900;
+ @apply text-black;
@apply py-4;
}
::selection {
@apply bg-green-400;
- @apply text-gray-900;
+ @apply text-black;
@apply bg-opacity-30;
}
a {
- @apply underline text-blue-600 hover:text-blue-800 visited:text-purple-600;
+ @apply underline text-black hover:text-gray-800 visited:text-gray-600;
+ }
+
+ @layer base {
+ label {
+ @apply block text-sm text-black;
+ }
+ input {
+ @apply bg-white border border-black rounded-sm focus:ring-black p-2;
+ }
+ textarea {
+ @apply bg-white border border-black rounded-sm focus:ring-black p-2;
+ }
}
@layer components {
.btn {
@apply relative z-10 inline-flex min-h-[30px] cursor-pointer items-center
justify-center bg-transparent px-2 pb-[0.2rem] text-base
- text-gray-900 before:absolute before:inset-0 before:-z-10
- before:block before:rounded-sm before:border before:border-blue-200
- before:bg-white before:shadow-[0_2px_2px_0_rgba(20,20,96,0.1),inset_0_-2px_0_0_#e5edff]
- before:content-[''] hover:before:border-blue-300
- hover:before:bg-blue-50
- hover:before:shadow-[0_2px_2px_0_rgba(20,20,96,0.1),inset_0_-2px_0_0_#e5edff]
+ text-black before:absolute before:inset-0 before:-z-10
+ before:block before:rounded-sm before:border before:border-black
+ before:bg-white before:shadow-[0_2px_2px_0_rgba(0,0,0,0.1),inset_0_-2px_0_0_#ffffff]
+ before:content-[''] hover:before:border-gray-800
+ hover:before:bg-gray-50
+ hover:before:shadow-[0_2px_2px_0_rgba(0,0,0,0.1),inset_0_-2px_0_0_#ffffff]
focus:outline-none focus-visible:before:outline
- focus-visible:before:outline-4 focus-visible:before:outline-blue-500
- active:before:shadow-[inset_0_2px_2px_0_rgba(20,20,96,0.1)];
+ focus-visible:before:outline-4 focus-visible:before:outline-black
+ active:before:shadow-[inset_0_2px_2px_0_rgba(0,0,0,0.1)];
}
}
@layer utilities {
.error {
- @apply py-1 border-red-400 text-red-600;
+ @apply py-1 border-black text-black;
+ }
+ .success {
+ @apply py-1 border-black text-black;
}
}
}