···
-
func (rp *Repo) AddLabel(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")
-
scope := r.FormValue("scope")
color := r.FormValue("color")
multiple := r.FormValue("multiple") == "true"
···
format := db.ValueTypeFormatAny
if valueFormat == "did" {
format = db.ValueTypeFormatDid
···
-
Scope: syntax.NSID(scope),
···
tx, err := rp.db.BeginTx(r.Context(), nil)
···
-
func (rp *Repo) DeleteLabel(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)
-
l := rp.logger.With("handler", "DeleteLabel")
l = l.With("did", user.Did)
l = l.With("handle", user.Handle)
···
-
errorId := "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)
-
l := rp.logger.With("handler", "DeleteLabel")
l = l.With("did", user.Did)
l = l.With("handle", user.Handle)
···
-
errorId := "label-operation"
fail := func(msg string, err error) {
rp.pages.Notice(w, errorId, msg)
···
func (rp *Repo) AddCollaborator(w http.ResponseWriter, r *http.Request) {
user := rp.oauth.GetUser(r)
l := rp.logger.With("handler", "AddCollaborator")
···
labels, err := db.GetLabelDefinitions(rp.db, db.FilterIn("at_uri", f.Repo.Labels))
log.Println("failed to fetch labels", err)
rp.pages.RepoGeneralSettings(w, pages.RepoGeneralSettingsParams{
-
RepoInfo: f.RepoInfo(user),
-
Branches: result.Branches,
···
+
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")
+
scope := r.Form["scope"]
color := r.FormValue("color")
multiple := r.FormValue("multiple") == "true"
···
+
if concreteType == "" {
format := db.ValueTypeFormatAny
if valueFormat == "did" {
format = db.ValueTypeFormatDid
···
···
+
fail("Failed to update labels for repo.", err)
tx, err := rp.db.BeginTx(r.Context(), nil)
···
+
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)
+
l := rp.logger.With("handler", "SubscribeLabel")
l = l.With("did", user.Did)
l = l.With("handle", user.Handle)
···
+
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)
+
l := rp.logger.With("handler", "UnsubscribeLabel")
l = l.With("did", user.Did)
l = l.With("handle", user.Handle)
···
+
errorId := "default-label-operation"
fail := func(msg string, err error) {
rp.pages.Notice(w, errorId, msg)
···
+
func (rp *Repo) LabelPanel(w http.ResponseWriter, r *http.Request) {
+
l := rp.logger.With("handler", "LabelPanel")
+
f, err := rp.repoResolver.Resolve(r)
+
l.Error("failed to get repo and knot", "err", err)
+
subjectStr := r.FormValue("subject")
+
subject, err := syntax.ParseATURI(subjectStr)
+
l.Error("failed to get repo and knot", "err", err)
+
labelDefs, err := db.GetLabelDefinitions(
+
db.FilterIn("at_uri", f.Repo.Labels),
+
db.FilterContains("scope", subject.Collection().String()),
+
log.Println("failed to fetch label defs", err)
+
defs := make(map[string]*db.LabelDefinition)
+
for _, l := range labelDefs {
+
defs[l.AtUri().String()] = &l
+
states, err := db.GetLabels(rp.db, db.FilterEq("subject", subject))
+
log.Println("failed to build label state", err)
+
state := states[subject]
+
user := rp.oauth.GetUser(r)
+
rp.pages.LabelPanel(w, pages.LabelPanelParams{
+
RepoInfo: f.RepoInfo(user),
+
Subject: subject.String(),
+
func (rp *Repo) EditLabelPanel(w http.ResponseWriter, r *http.Request) {
+
l := rp.logger.With("handler", "EditLabelPanel")
+
f, err := rp.repoResolver.Resolve(r)
+
l.Error("failed to get repo and knot", "err", err)
+
subjectStr := r.FormValue("subject")
+
subject, err := syntax.ParseATURI(subjectStr)
+
l.Error("failed to get repo and knot", "err", err)
+
labelDefs, err := db.GetLabelDefinitions(
+
db.FilterIn("at_uri", f.Repo.Labels),
+
db.FilterContains("scope", subject.Collection().String()),
+
log.Println("failed to fetch labels", err)
+
defs := make(map[string]*db.LabelDefinition)
+
for _, l := range labelDefs {
+
defs[l.AtUri().String()] = &l
+
states, err := db.GetLabels(rp.db, db.FilterEq("subject", subject))
+
log.Println("failed to build label state", err)
+
state := states[subject]
+
user := rp.oauth.GetUser(r)
+
rp.pages.EditLabelPanel(w, pages.EditLabelPanelParams{
+
RepoInfo: f.RepoInfo(user),
+
Subject: subject.String(),
func (rp *Repo) AddCollaborator(w http.ResponseWriter, r *http.Request) {
user := rp.oauth.GetUser(r)
l := rp.logger.With("handler", "AddCollaborator")
···
+
defaultLabels, err := db.GetLabelDefinitions(rp.db, db.FilterIn("at_uri", db.DefaultLabelDefs()))
+
log.Println("failed to fetch labels", err)
labels, err := db.GetLabelDefinitions(rp.db, db.FilterIn("at_uri", f.Repo.Labels))
log.Println("failed to fetch labels", err)
+
// remove default labels from the labels list, if present
+
defaultLabelMap := make(map[string]bool)
+
for _, dl := range defaultLabels {
+
defaultLabelMap[dl.AtUri().String()] = true
+
for _, l := range labels {
+
if !defaultLabelMap[l.AtUri().String()] {
+
subscribedLabels := make(map[string]struct{})
+
for _, l := range f.Repo.Labels {
+
subscribedLabels[l] = struct{}{}
rp.pages.RepoGeneralSettings(w, pages.RepoGeneralSettingsParams{
+
RepoInfo: f.RepoInfo(user),
+
Branches: result.Branches,
+
DefaultLabels: defaultLabels,
+
SubscribedLabels: subscribedLabels,