···
errorId := "default-label-operation"
fail := func(msg string, err error) {
rp.pages.Notice(w, errorId, msg)
-
labelAt := r.FormValue("label")
-
_, err = db.GetLabelDefinition(rp.db, db.FilterEq("at_uri", labelAt))
fail("Failed to subscribe to label.", err)
-
newRepo.Labels = append(newRepo.Labels, labelAt)
repoRecord := newRepo.AsRecord()
client, err := rp.oauth.AuthorizedClient(r)
···
-
err = db.SubscribeLabel(rp.db, &models.RepoLabel{
-
LabelAt: syntax.ATURI(labelAt),
fail("Failed to subscribe to label.", err)
···
errorId := "default-label-operation"
fail := func(msg string, err error) {
rp.pages.Notice(w, errorId, msg)
-
labelAt := r.FormValue("label")
-
_, err = db.GetLabelDefinition(rp.db, db.FilterEq("at_uri", labelAt))
fail("Failed to unsubscribe to label.", err)
···
for _, l := range newRepo.Labels {
updated = append(updated, l)
···
err = db.UnsubscribeLabel(
db.FilterEq("repo_at", f.RepoAt()),
-
db.FilterEq("label_at", labelAt),
fail("Failed to unsubscribe label.", err)
···
subscribedLabels[l] = struct{}{}
rp.pages.RepoGeneralSettings(w, pages.RepoGeneralSettingsParams{
-
RepoInfo: f.RepoInfo(user),
-
Branches: result.Branches,
-
DefaultLabels: defaultLabels,
-
SubscribedLabels: subscribedLabels,
···
+
if err := r.ParseForm(); err != nil {
+
l.Error("invalid form", "err", err)
errorId := "default-label-operation"
fail := func(msg string, err error) {
rp.pages.Notice(w, errorId, msg)
+
labelAts := r.Form["label"]
+
_, err = db.GetLabelDefinitions(rp.db, db.FilterIn("at_uri", labelAts))
fail("Failed to subscribe to label.", err)
+
newRepo.Labels = append(newRepo.Labels, labelAts...)
+
slices.Sort(newRepo.Labels)
+
newRepo.Labels = slices.Compact(newRepo.Labels)
repoRecord := newRepo.AsRecord()
client, err := rp.oauth.AuthorizedClient(r)
···
+
tx, err := rp.db.Begin()
fail("Failed to subscribe to label.", err)
+
for _, l := range labelAts {
+
err = db.SubscribeLabel(tx, &models.RepoLabel{
+
LabelAt: syntax.ATURI(l),
+
fail("Failed to subscribe to label.", err)
+
if err := tx.Commit(); err != nil {
+
fail("Failed to subscribe to label.", err)
···
+
if err := r.ParseForm(); err != nil {
+
l.Error("invalid form", "err", err)
errorId := "default-label-operation"
fail := func(msg string, err error) {
rp.pages.Notice(w, errorId, msg)
+
labelAts := r.Form["label"]
+
_, err = db.GetLabelDefinitions(rp.db, db.FilterIn("at_uri", labelAts))
fail("Failed to unsubscribe to label.", err)
···
for _, l := range newRepo.Labels {
+
if !slices.Contains(labelAts, l) {
updated = append(updated, l)
···
err = db.UnsubscribeLabel(
db.FilterEq("repo_at", f.RepoAt()),
+
db.FilterIn("label_at", labelAts),
fail("Failed to unsubscribe label.", err)
···
subscribedLabels[l] = struct{}{}
+
// if there is atleast 1 unsubbed default label, show the "subscribe all" button,
+
// if all default labels are subbed, show the "unsubscribe all" button
+
shouldSubscribeAll := false
+
for _, dl := range defaultLabels {
+
if _, ok := subscribedLabels[dl.AtUri().String()]; !ok {
+
// one of the default labels is not subscribed to
+
shouldSubscribeAll = true
rp.pages.RepoGeneralSettings(w, pages.RepoGeneralSettingsParams{
+
RepoInfo: f.RepoInfo(user),
+
Branches: result.Branches,
+
DefaultLabels: defaultLabels,
+
SubscribedLabels: subscribedLabels,
+
ShouldSubscribeAll: shouldSubscribeAll,