···11-{{ define "knots/fragments/banner" }}11+{{ define "knots/fragments/bannerReadOnly" }}22<div class="w-full px-6 py-2 -z-15 bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200 border border-yellow-200 dark:border-yellow-800 rounded-b drop-shadow-sm">33 A knot ({{range $i, $r := .Registrations}}{{if ne $i 0}}, {{end}}{{ $r.Domain }}{{ end }})44 that you administer is presently read-only. Consider upgrading this knot to···66 <a href="https://tangled.sh/@tangled.sh/core/blob/master/docs/migrations/knot-1.7.0.md">Click to read the upgrade guide</a>.77</div>88{{ end }}99-
···11+{{ define "knots/fragments/bannerRequiresUpgrade" }}22+<div class="prose mx-auto w-96 px-6 py-2 bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200 border border-yellow-200 dark:border-yellow-800 rounded-b drop-shadow-sm">33+ The following knots that you administer require upgrade to be compatible with the latest version of Tangled:44+ <ul>55+ {{range $i, $r := .Registrations}}66+ <li>{{ $r.Domain }}</li>77+ {{ end }}88+ </ul>99+ Repositories hosted on these knots will not be accessible until upgraded.1010+ <a href="https://tangled.sh/@tangled.sh/core/blob/master/docs/migrations/knot-1.8.0.md">Click to read the upgrade guide</a>.1111+</div>1212+{{ end }}
+24
appview/pages/templates/repo/needsUpgrade.html
···11+{{ define "title" }}{{ .RepoInfo.FullName }}{{ end }}22+33+{{ define "extrameta" }}44+ {{ template "repo/fragments/meta" . }}55+ {{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo) }}66+{{ end }}77+88+{{ define "repoContent" }}99+ <main>1010+ <div class="w-full h-full flex place-content-center {{ if .LoggedInUser }} bg-yellow-100 dark:bg-yellow-900 {{ end }}">1111+ <div class="py-6 w-fit flex flex-col gap-4 text-center">1212+ {{ if .LoggedInUser }}1313+ <p class=" text-yellow-800 dark:text-yellow-200 text-center">1414+ Your knot needs an upgrade. This repository is currently unavailable to users.1515+ </p>1616+ {{ else }}1717+ <p class="text-gray-400 dark:text-gray-500 py-6 text-center">1818+ The knot hosting this repository needs an upgrade. This repository is currently unavailable.1919+ </p>2020+ {{ end }}2121+ </div>2222+ </div>2323+ </main>2424+{{ end }}
+9
appview/repo/index.go
···11package repo2233import (44+ "errors"45 "fmt"56 "log"67 "net/http"···4746 Host: host,4847 }49484949+ var needsKnotUpgrade bool5050 // Build index response from multiple XRPC calls5151 result, err := rp.buildIndexResponse(r.Context(), xrpcc, f, ref)5252 if err != nil {5353+ if errors.Is(err, xrpcclient.ErrXrpcUnsupported) {5454+ log.Println("failed to call XRPC repo.index", err)5555+ needsKnotUpgrade = true5656+ return5757+ }5858+5359 rp.pages.Error503(w)5460 log.Println("failed to build index response", err)5561 return···141133142134 rp.pages.RepoIndexPage(w, pages.RepoIndexParams{143135 LoggedInUser: user,136136+ NeedsKnotUpgrade: needsKnotUpgrade,144137 RepoInfo: repoInfo,145138 TagMap: tagMap,146139 RepoIndexResponse: *result,