8
8
"fmt"
9
9
"html"
10
10
"net/http"
11
+ "sort"
11
12
"strings"
12
13
"text/template"
13
14
@@ -148,7 +149,7 @@ var RenderUUIDPrimaryKeyRefsHTML = http.HandlerFunc(func(writer http.ResponseWri
148
149
var (
149
150
title string
150
151
mainContent any
151
- style = []string {StyleAllMonospace , StyleDefaultTable }
152
+ style = []string {StyleAllMonospace , StyleDefaultTable , `<style>h1 {color:red}</style>` }
152
153
)
153
154
pk , err := uu .IDFromString (request .URL .Query ().Get ("pk" ))
154
155
if err != nil {
@@ -159,7 +160,7 @@ var RenderUUIDPrimaryKeyRefsHTML = http.HandlerFunc(func(writer http.ResponseWri
159
160
<input type="submit" value="Look up"/>
160
161
</form>`
161
162
} else {
162
- title = fmt . Sprintf ( "UUID %s" , pk )
163
+ title = pk . String ( )
163
164
ctx := request .Context ()
164
165
cols , err := GetPrimaryKeyColumnsOfType (ctx , "uuid" )
165
166
if err != nil {
@@ -171,6 +172,9 @@ var RenderUUIDPrimaryKeyRefsHTML = http.HandlerFunc(func(writer http.ResponseWri
171
172
http .Error (writer , err .Error (), http .StatusInternalServerError )
172
173
return
173
174
}
175
+ sort .SliceStable (tableRows , func (i , j int ) bool {
176
+ return ! tableRows [i ].ForeignKey && tableRows [j ].ForeignKey
177
+ })
174
178
var b strings.Builder
175
179
for _ , tableRow := range tableRows { //#nosec
176
180
fmt .Fprintf (& b , "<h3>%s</h3>" , html .EscapeString (tableRow .Table ))
@@ -180,7 +184,11 @@ var RenderUUIDPrimaryKeyRefsHTML = http.HandlerFunc(func(writer http.ResponseWri
180
184
id , err := uu .IDFromString (val )
181
185
if err == nil {
182
186
if id == pk {
183
- fmt .Fprintf (& b , "<tr><td>%s</td><td><b>%s</b></td></tr>" , html .EscapeString (title ), id )
187
+ var fk string
188
+ if tableRow .ForeignKey {
189
+ fk = " (foreign key)"
190
+ }
191
+ fmt .Fprintf (& b , "<tr><td>%s</td><td><b style='color:red'>%s</b>%s</td></tr>" , html .EscapeString (title ), id , fk )
184
192
} else {
185
193
fmt .Fprintf (& b , "<tr><td>%[1]s</td><td><a href='.?pk=%[2]s'>%[2]s</a></td></tr>" , html .EscapeString (title ), id )
186
194
}
0 commit comments