···
969
-
func (rp *Repo) AddLabel(w http.ResponseWriter, r *http.Request) {
969
+
func (rp *Repo) AddLabelDef(w http.ResponseWriter, r *http.Request) {
user := rp.oauth.GetUser(r)
l := rp.logger.With("handler", "AddLabel")
l = l.With("did", user.Did)
···
concreteType := r.FormValue("valueType")
valueFormat := r.FormValue("valueFormat")
enumValues := r.FormValue("enumValues")
992
-
scope := r.FormValue("scope")
992
+
scope := r.Form["scope"]
color := r.FormValue("color")
multiple := r.FormValue("multiple") == "true"
···
1003
+
if concreteType == "" {
1004
+
concreteType = "null"
format := db.ValueTypeFormatAny
if valueFormat == "did" {
format = db.ValueTypeFormatDid
···
1019
-
Scope: syntax.NSID(scope),
···
1080
+
fail("Failed to update labels for repo.", err)
tx, err := rp.db.BeginTx(r.Context(), nil)
···
1121
-
func (rp *Repo) DeleteLabel(w http.ResponseWriter, r *http.Request) {
1129
+
func (rp *Repo) DeleteLabelDef(w http.ResponseWriter, r *http.Request) {
user := rp.oauth.GetUser(r)
l := rp.logger.With("handler", "DeleteLabel")
l = l.With("did", user.Did)
···
func (rp *Repo) SubscribeLabel(w http.ResponseWriter, r *http.Request) {
user := rp.oauth.GetUser(r)
1232
-
l := rp.logger.With("handler", "DeleteLabel")
1240
+
l := rp.logger.With("handler", "SubscribeLabel")
l = l.With("did", user.Did)
l = l.With("handle", user.Handle)
···
1242
-
errorId := "label-operation"
1250
+
errorId := "default-label-operation"
fail := func(msg string, err error) {
rp.pages.Notice(w, errorId, msg)
···
func (rp *Repo) UnsubscribeLabel(w http.ResponseWriter, r *http.Request) {
user := rp.oauth.GetUser(r)
1295
-
l := rp.logger.With("handler", "DeleteLabel")
1303
+
l := rp.logger.With("handler", "UnsubscribeLabel")
l = l.With("did", user.Did)
l = l.With("handle", user.Handle)
···
1305
-
errorId := "label-operation"
1313
+
errorId := "default-label-operation"
fail := func(msg string, err error) {
rp.pages.Notice(w, errorId, msg)
···
1372
+
func (rp *Repo) LabelPanel(w http.ResponseWriter, r *http.Request) {
1373
+
l := rp.logger.With("handler", "LabelPanel")
1375
+
f, err := rp.repoResolver.Resolve(r)
1377
+
l.Error("failed to get repo and knot", "err", err)
1381
+
subjectStr := r.FormValue("subject")
1382
+
subject, err := syntax.ParseATURI(subjectStr)
1384
+
l.Error("failed to get repo and knot", "err", err)
1388
+
labelDefs, err := db.GetLabelDefinitions(
1390
+
db.FilterIn("at_uri", f.Repo.Labels),
1391
+
db.FilterContains("scope", subject.Collection().String()),
1394
+
log.Println("failed to fetch label defs", err)
1398
+
defs := make(map[string]*db.LabelDefinition)
1399
+
for _, l := range labelDefs {
1400
+
defs[l.AtUri().String()] = &l
1403
+
states, err := db.GetLabels(rp.db, db.FilterEq("subject", subject))
1405
+
log.Println("failed to build label state", err)
1408
+
state := states[subject]
1410
+
user := rp.oauth.GetUser(r)
1411
+
rp.pages.LabelPanel(w, pages.LabelPanelParams{
1412
+
LoggedInUser: user,
1413
+
RepoInfo: f.RepoInfo(user),
1415
+
Subject: subject.String(),
1420
+
func (rp *Repo) EditLabelPanel(w http.ResponseWriter, r *http.Request) {
1421
+
l := rp.logger.With("handler", "EditLabelPanel")
1423
+
f, err := rp.repoResolver.Resolve(r)
1425
+
l.Error("failed to get repo and knot", "err", err)
1429
+
subjectStr := r.FormValue("subject")
1430
+
subject, err := syntax.ParseATURI(subjectStr)
1432
+
l.Error("failed to get repo and knot", "err", err)
1436
+
labelDefs, err := db.GetLabelDefinitions(
1438
+
db.FilterIn("at_uri", f.Repo.Labels),
1439
+
db.FilterContains("scope", subject.Collection().String()),
1442
+
log.Println("failed to fetch labels", err)
1446
+
defs := make(map[string]*db.LabelDefinition)
1447
+
for _, l := range labelDefs {
1448
+
defs[l.AtUri().String()] = &l
1451
+
states, err := db.GetLabels(rp.db, db.FilterEq("subject", subject))
1453
+
log.Println("failed to build label state", err)
1456
+
state := states[subject]
1458
+
user := rp.oauth.GetUser(r)
1459
+
rp.pages.EditLabelPanel(w, pages.EditLabelPanelParams{
1460
+
LoggedInUser: user,
1461
+
RepoInfo: f.RepoInfo(user),
1463
+
Subject: subject.String(),
func (rp *Repo) AddCollaborator(w http.ResponseWriter, r *http.Request) {
user := rp.oauth.GetUser(r)
l := rp.logger.With("handler", "AddCollaborator")
···
1897
+
defaultLabels, err := db.GetLabelDefinitions(rp.db, db.FilterIn("at_uri", db.DefaultLabelDefs()))
1899
+
log.Println("failed to fetch labels", err)
1900
+
rp.pages.Error503(w)
labels, err := db.GetLabelDefinitions(rp.db, db.FilterIn("at_uri", f.Repo.Labels))
log.Println("failed to fetch labels", err)
1910
+
// remove default labels from the labels list, if present
1911
+
defaultLabelMap := make(map[string]bool)
1912
+
for _, dl := range defaultLabels {
1913
+
defaultLabelMap[dl.AtUri().String()] = true
1916
+
for _, l := range labels {
1917
+
if !defaultLabelMap[l.AtUri().String()] {
1922
+
labels = labels[:n]
1924
+
subscribedLabels := make(map[string]struct{})
1925
+
for _, l := range f.Repo.Labels {
1926
+
subscribedLabels[l] = struct{}{}
rp.pages.RepoGeneralSettings(w, pages.RepoGeneralSettingsParams{
1801
-
LoggedInUser: user,
1802
-
RepoInfo: f.RepoInfo(user),
1803
-
Branches: result.Branches,
1805
-
Tabs: settingsTabs,
1930
+
LoggedInUser: user,
1931
+
RepoInfo: f.RepoInfo(user),
1932
+
Branches: result.Branches,
1934
+
DefaultLabels: defaultLabels,
1935
+
SubscribedLabels: subscribedLabels,
1936
+
Tabs: settingsTabs,