Mirror of @tangled.org/core. Running on a Raspberry Pi Zero 2

appview/pages: minor improvements to avatar upload form

Signed-off-by: oppiliappan <me@oppi.li>

oppi.li ce33d485 f4eef54e

verified
+25 -18
+1 -1
appview/oauth/handler.go
··· 167 167 return 168 168 } 169 169 170 - l.Debug("addings to default knot") 170 + l.Debug("adding to default knot") 171 171 session, err := o.createAppPasswordSession(o.Config.Core.TmpAltAppPassword, consts.IcyDid) 172 172 if err != nil { 173 173 l.Error("failed to create session", "err", err)
+6
appview/oauth/oauth.go
··· 169 169 170 170 // delete the session 171 171 err1 := o.ClientApp.Logout(r.Context(), sessDid, sessId) 172 + if err1 != nil { 173 + err1 = fmt.Errorf("failed to logout: %w", err1) 174 + } 172 175 173 176 // remove the cookie 174 177 userSession.Options.MaxAge = -1 175 178 err2 := o.SessStore.Save(r, w, userSession) 179 + if err2 != nil { 180 + err2 = fmt.Errorf("failed to save into session store: %w", err2) 181 + } 176 182 177 183 return errors.Join(err1, err2) 178 184 }
+18 -17
appview/pages/templates/user/fragments/editAvatar.html
··· 2 2 <form 3 3 hx-post="/profile/avatar" 4 4 hx-encoding="multipart/form-data" 5 - hx-indicator="#spinner" 6 5 hx-swap="none" 7 - class="flex flex-col gap-2"> 6 + class="flex flex-col gap-2 group/form"> 8 7 <label for="avatar-file" class="uppercase p-0"> 9 8 Upload or Remove Avatar 10 9 </label> ··· 21 22 file:bg-gray-100 file:text-gray-700 22 23 dark:file:bg-gray-700 dark:file:text-gray-300 23 24 hover:file:bg-gray-200 dark:hover:file:bg-gray-600" /> 24 - <div id="avatar-error" class="text-red-500 dark:text-red-400 text-sm min-h-5"></div> 25 25 <div class="flex flex-col gap-2 pt-2"> 26 26 <button type="submit" class="btn w-full flex items-center justify-center gap-2"> 27 - <span class="inline-flex gap-2 items-center">{{ i "upload" "size-4" }} upload</span> 28 - <span id="spinner" class="group"> 29 - {{ i "loader-circle" "ml-2 w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }} 30 - </span> 27 + {{ i "upload" "size-4 inline group-[.htmx-request]/form:hidden" }} 28 + {{ i "loader-circle" "size-4 animate-spin hidden group-[.htmx-request]/form:inline" }} 29 + upload 31 30 </button> 32 - <button 33 - type="button" 34 - hx-delete="/profile/avatar" 35 - hx-confirm="Are you sure you want to remove your profile picture?" 36 - hx-swap="none" 37 - class="btn w-full flex items-center justify-center gap-2"> 38 - {{ i "trash-2" "size-4" }} 39 - remove avatar 40 - </button> 31 + {{ if .Profile.Avatar }} 32 + <button 33 + type="button" 34 + hx-delete="/profile/avatar" 35 + hx-confirm="Are you sure you want to remove your profile picture?" 36 + hx-swap="none" 37 + class="btn w-full flex items-center justify-center gap-2 group"> 38 + {{ i "trash-2" "size-4 inline group-[.htmx-request]:hidden" }} 39 + {{ i "loader-circle" "size-4 animate-spin hidden group-[.htmx-request]:inline" }} 40 + remove avatar 41 + </button> 42 + {{ end }} 41 43 <button 42 44 id="cancel-avatar-btn" 43 45 type="button" 44 46 popovertarget="avatar-upload-modal" 45 47 popovertargetaction="hide" 46 - class="btn w-full flex items-center justify-center gap-2 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-300"> 48 + class="btn text-red-500 dark:text-red-400 w-full flex items-center justify-center gap-2"> 47 49 {{ i "x" "size-4" }} 48 50 cancel 49 51 </button> 50 52 </div> 53 + <div id="avatar-error" class="text-red-500 dark:text-red-400 text-sm"></div> 51 54 </form> 52 55 {{ end }}