+7
appview/pages/templates/repo/fork.html
+7
appview/pages/templates/repo/fork.html
···
6
6
</div>
7
7
<div class="p-6 bg-white dark:bg-gray-800 drop-shadow-sm rounded">
8
8
<form hx-post="/{{ .RepoInfo.FullName }}/fork" class="space-y-12" hx-swap="none" hx-indicator="#spinner">
9
+
10
+
<fieldset class="space-y-3">
11
+
<legend for="repo_name" class="dark:text-white">Repository name</legend>
12
+
<input type="text" id="repo_name" name="repo_name" value="{{ .RepoInfo.Name }}"
13
+
class="w-full p-2 border rounded bg-gray-100 dark:bg-gray-700 dark:text-white dark:border-gray-600" />
14
+
</fieldset>
15
+
9
16
<fieldset class="space-y-3">
10
17
<legend class="dark:text-white">Select a knot to fork into</legend>
11
18
<div class="space-y-2">
+11
-7
appview/repo/repo.go
+11
-7
appview/repo/repo.go
···
2129
2129
}
2130
2130
2131
2131
// choose a name for a fork
2132
-
forkName := f.Name
2132
+
forkName := r.FormValue("repo_name")
2133
+
if forkName == "" {
2134
+
rp.pages.Notice(w, "repo", "Repository name cannot be empty.")
2135
+
return
2136
+
}
2137
+
2133
2138
// this check is *only* to see if the forked repo name already exists
2134
2139
// in the user's account.
2135
2140
existingRepo, err := db.GetRepo(
2136
2141
rp.db,
2137
2142
db.FilterEq("did", user.Did),
2138
-
db.FilterEq("name", f.Name),
2143
+
db.FilterEq("name", forkName),
2139
2144
)
2140
2145
if err != nil {
2141
-
if errors.Is(err, sql.ErrNoRows) {
2142
-
// no existing repo with this name found, we can use the name as is
2143
-
} else {
2146
+
if !errors.Is(err, sql.ErrNoRows) {
2144
2147
log.Println("error fetching existing repo from db", "err", err)
2145
2148
rp.pages.Notice(w, "repo", "Failed to fork this repository. Try again later.")
2146
2149
return
2147
2150
}
2148
2151
} else if existingRepo != nil {
2149
-
// repo with this name already exists, append random string
2150
-
forkName = fmt.Sprintf("%s-%s", forkName, randomString(3))
2152
+
// repo with this name already exists
2153
+
rp.pages.Notice(w, "repo", "A repository with this name already exists.")
2154
+
return
2151
2155
}
2152
2156
l = l.With("forkName", forkName)
2153
2157