aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bug/bug.go3
-rw-r--r--bug/op_add_comment.go3
-rw-r--r--bug/op_create.go3
-rw-r--r--bug/op_label_change.go3
-rw-r--r--bug/op_set_status.go3
-rw-r--r--bug/op_set_title.go3
-rw-r--r--bug/snapshot.go3
-rw-r--r--graphql/graph/gen_graph.go40
-rw-r--r--graphql/schema/bug.graphql3
-rw-r--r--graphql/schema/timeline.graphql10
-rw-r--r--graphql/schema/types.graphql2
-rw-r--r--webui/src/Author.js12
-rw-r--r--webui/src/bug/Bug.js7
-rw-r--r--webui/src/bug/LabelChange.js8
-rw-r--r--webui/src/bug/Message.js18
-rw-r--r--webui/src/bug/SetStatus.js8
-rw-r--r--webui/src/bug/SetTitle.js8
-rw-r--r--webui/src/list/BugRow.js8
18 files changed, 87 insertions, 58 deletions
diff --git a/bug/bug.go b/bug/bug.go
index f1bd1114..0604d11d 100644
--- a/bug/bug.go
+++ b/bug/bug.go
@@ -681,3 +681,6 @@ func (bug *Bug) Compile() Snapshot {
return snap
}
+
+// Sign post method for gqlgen
+func (bug *Bug) IsAuthored() {}
diff --git a/bug/op_add_comment.go b/bug/op_add_comment.go
index 8cde20e8..59ea08e0 100644
--- a/bug/op_add_comment.go
+++ b/bug/op_add_comment.go
@@ -149,3 +149,6 @@ func AddCommentWithFiles(b Interface, author identity.Interface, unixTime int64,
b.Append(addCommentOp)
return addCommentOp, nil
}
+
+// Sign post method for gqlgen
+func (item *AddCommentTimelineItem) IsAuthored() {}
diff --git a/bug/op_create.go b/bug/op_create.go
index f3757f89..e0e8154b 100644
--- a/bug/op_create.go
+++ b/bug/op_create.go
@@ -173,3 +173,6 @@ func CreateWithFiles(author identity.Interface, unixTime int64, title, message s
return newBug, createOp, nil
}
+
+// Sign post method for gqlgen
+func (item *CreateTimelineItem) IsAuthored() {}
diff --git a/bug/op_label_change.go b/bug/op_label_change.go
index 0e7929b7..c5b3765d 100644
--- a/bug/op_label_change.go
+++ b/bug/op_label_change.go
@@ -303,3 +303,6 @@ func (l LabelChangeResult) String() string {
panic(fmt.Sprintf("unknown label change status %v", l.Status))
}
}
+
+// Sign post method for gqlgen
+func (item *LabelChangeTimelineItem) IsAuthored() {}
diff --git a/bug/op_set_status.go b/bug/op_set_status.go
index 57d4cf22..de7b8526 100644
--- a/bug/op_set_status.go
+++ b/bug/op_set_status.go
@@ -143,3 +143,6 @@ func Close(b Interface, author identity.Interface, unixTime int64) (*SetStatusOp
b.Append(op)
return op, nil
}
+
+// Sign post method for gqlgen
+func (item *SetStatusTimelineItem) IsAuthored() {}
diff --git a/bug/op_set_title.go b/bug/op_set_title.go
index ca27adee..dce06014 100644
--- a/bug/op_set_title.go
+++ b/bug/op_set_title.go
@@ -178,3 +178,6 @@ func SetTitle(b Interface, author identity.Interface, unixTime int64, title stri
b.Append(setTitleOp)
return setTitleOp, nil
}
+
+// Sign post method for gqlgen
+func (item *SetTitleTimelineItem) IsAuthored() {}
diff --git a/bug/snapshot.go b/bug/snapshot.go
index 53f6873a..a4661b14 100644
--- a/bug/snapshot.go
+++ b/bug/snapshot.go
@@ -86,3 +86,6 @@ func (snap *Snapshot) addParticipant(participant identity.Interface) {
snap.Participants = append(snap.Participants, participant)
}
+
+// Sign post method for gqlgen
+func (snap *Snapshot) IsAuthored() {}
diff --git a/graphql/graph/gen_graph.go b/graphql/graph/gen_graph.go
index 6365d597..8b9221da 100644
--- a/graphql/graph/gen_graph.go
+++ b/graphql/graph/gen_graph.go
@@ -1601,7 +1601,7 @@ enum Status {
CLOSED
}
-type Bug {
+type Bug implements Authored {
"""The identifier for this bug"""
id: String!
"""The human version (truncated) identifier for this bug"""
@@ -1690,7 +1690,6 @@ type BugEdge {
"""The item at the end of the edge."""
node: Bug!
}
-
`},
&ast.Source{Name: "schema/identity.graphql", Input: `"""Represents an identity"""
type Identity {
@@ -1911,7 +1910,7 @@ type TimelineItemEdge {
# Items
"""CreateTimelineItem is a TimelineItem that represent the creation of a bug and its message edition history"""
-type CreateTimelineItem implements TimelineItem {
+type CreateTimelineItem implements TimelineItem & Authored {
"""The hash of the source operation"""
hash: Hash!
author: Identity!
@@ -1925,7 +1924,7 @@ type CreateTimelineItem implements TimelineItem {
}
"""AddCommentTimelineItem is a TimelineItem that represent a Comment and its edition history"""
-type AddCommentTimelineItem implements TimelineItem {
+type AddCommentTimelineItem implements TimelineItem & Authored {
"""The hash of the source operation"""
hash: Hash!
author: Identity!
@@ -1939,7 +1938,7 @@ type AddCommentTimelineItem implements TimelineItem {
}
"""LabelChangeTimelineItem is a TimelineItem that represent a change in the labels of a bug"""
-type LabelChangeTimelineItem implements TimelineItem {
+type LabelChangeTimelineItem implements TimelineItem & Authored {
"""The hash of the source operation"""
hash: Hash!
author: Identity!
@@ -1949,7 +1948,7 @@ type LabelChangeTimelineItem implements TimelineItem {
}
"""SetStatusTimelineItem is a TimelineItem that represent a change in the status of a bug"""
-type SetStatusTimelineItem implements TimelineItem {
+type SetStatusTimelineItem implements TimelineItem & Authored {
"""The hash of the source operation"""
hash: Hash!
author: Identity!
@@ -1958,7 +1957,7 @@ type SetStatusTimelineItem implements TimelineItem {
}
"""LabelChangeTimelineItem is a TimelineItem that represent a change in the title of a bug"""
-type SetTitleTimelineItem implements TimelineItem {
+type SetTitleTimelineItem implements TimelineItem & Authored {
"""The hash of the source operation"""
hash: Hash!
author: Identity!
@@ -2004,7 +2003,8 @@ type PageInfo {
interface Authored {
"""The author of this object."""
author: Identity!
-}`},
+}
+`},
)
// endregion ************************** generated!.gotpl **************************
@@ -7434,6 +7434,8 @@ func (ec *executionContext) _Authored(ctx context.Context, sel ast.SelectionSet,
return ec._Comment(ctx, sel, &obj)
case *bug.Comment:
return ec._Comment(ctx, sel, obj)
+ case *bug.Snapshot:
+ return ec._Bug(ctx, sel, obj)
case *bug.CreateOperation:
return ec._CreateOperation(ctx, sel, obj)
case *bug.SetTitleOperation:
@@ -7446,6 +7448,16 @@ func (ec *executionContext) _Authored(ctx context.Context, sel ast.SelectionSet,
return ec._SetStatusOperation(ctx, sel, obj)
case *bug.LabelChangeOperation:
return ec._LabelChangeOperation(ctx, sel, obj)
+ case *bug.CreateTimelineItem:
+ return ec._CreateTimelineItem(ctx, sel, obj)
+ case *bug.AddCommentTimelineItem:
+ return ec._AddCommentTimelineItem(ctx, sel, obj)
+ case *bug.LabelChangeTimelineItem:
+ return ec._LabelChangeTimelineItem(ctx, sel, obj)
+ case *bug.SetStatusTimelineItem:
+ return ec._SetStatusTimelineItem(ctx, sel, obj)
+ case *bug.SetTitleTimelineItem:
+ return ec._SetTitleTimelineItem(ctx, sel, obj)
default:
panic(fmt.Errorf("unexpected type %T", obj))
}
@@ -7557,7 +7569,7 @@ func (ec *executionContext) _AddCommentOperation(ctx context.Context, sel ast.Se
return out
}
-var addCommentTimelineItemImplementors = []string{"AddCommentTimelineItem", "TimelineItem"}
+var addCommentTimelineItemImplementors = []string{"AddCommentTimelineItem", "TimelineItem", "Authored"}
func (ec *executionContext) _AddCommentTimelineItem(ctx context.Context, sel ast.SelectionSet, obj *bug.AddCommentTimelineItem) graphql.Marshaler {
fields := graphql.CollectFields(ec.RequestContext, sel, addCommentTimelineItemImplementors)
@@ -7642,7 +7654,7 @@ func (ec *executionContext) _AddCommentTimelineItem(ctx context.Context, sel ast
return out
}
-var bugImplementors = []string{"Bug"}
+var bugImplementors = []string{"Bug", "Authored"}
func (ec *executionContext) _Bug(ctx context.Context, sel ast.SelectionSet, obj *bug.Snapshot) graphql.Marshaler {
fields := graphql.CollectFields(ec.RequestContext, sel, bugImplementors)
@@ -8143,7 +8155,7 @@ func (ec *executionContext) _CreateOperation(ctx context.Context, sel ast.Select
return out
}
-var createTimelineItemImplementors = []string{"CreateTimelineItem", "TimelineItem"}
+var createTimelineItemImplementors = []string{"CreateTimelineItem", "TimelineItem", "Authored"}
func (ec *executionContext) _CreateTimelineItem(ctx context.Context, sel ast.SelectionSet, obj *bug.CreateTimelineItem) graphql.Marshaler {
fields := graphql.CollectFields(ec.RequestContext, sel, createTimelineItemImplementors)
@@ -8591,7 +8603,7 @@ func (ec *executionContext) _LabelChangeOperation(ctx context.Context, sel ast.S
return out
}
-var labelChangeTimelineItemImplementors = []string{"LabelChangeTimelineItem", "TimelineItem"}
+var labelChangeTimelineItemImplementors = []string{"LabelChangeTimelineItem", "TimelineItem", "Authored"}
func (ec *executionContext) _LabelChangeTimelineItem(ctx context.Context, sel ast.SelectionSet, obj *bug.LabelChangeTimelineItem) graphql.Marshaler {
fields := graphql.CollectFields(ec.RequestContext, sel, labelChangeTimelineItemImplementors)
@@ -9033,7 +9045,7 @@ func (ec *executionContext) _SetStatusOperation(ctx context.Context, sel ast.Sel
return out
}
-var setStatusTimelineItemImplementors = []string{"SetStatusTimelineItem", "TimelineItem"}
+var setStatusTimelineItemImplementors = []string{"SetStatusTimelineItem", "TimelineItem", "Authored"}
func (ec *executionContext) _SetStatusTimelineItem(ctx context.Context, sel ast.SelectionSet, obj *bug.SetStatusTimelineItem) graphql.Marshaler {
fields := graphql.CollectFields(ec.RequestContext, sel, setStatusTimelineItemImplementors)
@@ -9149,7 +9161,7 @@ func (ec *executionContext) _SetTitleOperation(ctx context.Context, sel ast.Sele
return out
}
-var setTitleTimelineItemImplementors = []string{"SetTitleTimelineItem", "TimelineItem"}
+var setTitleTimelineItemImplementors = []string{"SetTitleTimelineItem", "TimelineItem", "Authored"}
func (ec *executionContext) _SetTitleTimelineItem(ctx context.Context, sel ast.SelectionSet, obj *bug.SetTitleTimelineItem) graphql.Marshaler {
fields := graphql.CollectFields(ec.RequestContext, sel, setTitleTimelineItemImplementors)
diff --git a/graphql/schema/bug.graphql b/graphql/schema/bug.graphql
index 8e058ed7..03aa95b8 100644
--- a/graphql/schema/bug.graphql
+++ b/graphql/schema/bug.graphql
@@ -27,7 +27,7 @@ enum Status {
CLOSED
}
-type Bug {
+type Bug implements Authored {
"""The identifier for this bug"""
id: String!
"""The human version (truncated) identifier for this bug"""
@@ -116,4 +116,3 @@ type BugEdge {
"""The item at the end of the edge."""
node: Bug!
}
-
diff --git a/graphql/schema/timeline.graphql b/graphql/schema/timeline.graphql
index 35bb88bf..ccc89b87 100644
--- a/graphql/schema/timeline.graphql
+++ b/graphql/schema/timeline.graphql
@@ -29,7 +29,7 @@ type TimelineItemEdge {
# Items
"""CreateTimelineItem is a TimelineItem that represent the creation of a bug and its message edition history"""
-type CreateTimelineItem implements TimelineItem {
+type CreateTimelineItem implements TimelineItem & Authored {
"""The hash of the source operation"""
hash: Hash!
author: Identity!
@@ -43,7 +43,7 @@ type CreateTimelineItem implements TimelineItem {
}
"""AddCommentTimelineItem is a TimelineItem that represent a Comment and its edition history"""
-type AddCommentTimelineItem implements TimelineItem {
+type AddCommentTimelineItem implements TimelineItem & Authored {
"""The hash of the source operation"""
hash: Hash!
author: Identity!
@@ -57,7 +57,7 @@ type AddCommentTimelineItem implements TimelineItem {
}
"""LabelChangeTimelineItem is a TimelineItem that represent a change in the labels of a bug"""
-type LabelChangeTimelineItem implements TimelineItem {
+type LabelChangeTimelineItem implements TimelineItem & Authored {
"""The hash of the source operation"""
hash: Hash!
author: Identity!
@@ -67,7 +67,7 @@ type LabelChangeTimelineItem implements TimelineItem {
}
"""SetStatusTimelineItem is a TimelineItem that represent a change in the status of a bug"""
-type SetStatusTimelineItem implements TimelineItem {
+type SetStatusTimelineItem implements TimelineItem & Authored {
"""The hash of the source operation"""
hash: Hash!
author: Identity!
@@ -76,7 +76,7 @@ type SetStatusTimelineItem implements TimelineItem {
}
"""LabelChangeTimelineItem is a TimelineItem that represent a change in the title of a bug"""
-type SetTitleTimelineItem implements TimelineItem {
+type SetTitleTimelineItem implements TimelineItem & Authored {
"""The hash of the source operation"""
hash: Hash!
author: Identity!
diff --git a/graphql/schema/types.graphql b/graphql/schema/types.graphql
index 22447aae..fb94d1e8 100644
--- a/graphql/schema/types.graphql
+++ b/graphql/schema/types.graphql
@@ -35,4 +35,4 @@ type PageInfo {
interface Authored {
"""The author of this object."""
author: Identity!
-} \ No newline at end of file
+}
diff --git a/webui/src/Author.js b/webui/src/Author.js
index 7bb1bf3c..237a7956 100644
--- a/webui/src/Author.js
+++ b/webui/src/Author.js
@@ -1,3 +1,4 @@
+import gql from 'graphql-tag';
import Tooltip from '@material-ui/core/Tooltip/Tooltip';
import MAvatar from '@material-ui/core/Avatar';
import React from 'react';
@@ -14,6 +15,17 @@ const Author = ({ author, ...props }) => {
);
};
+Author.fragment = gql`
+ fragment authored on Authored {
+ author {
+ name
+ email
+ displayName
+ avatarUrl
+ }
+ }
+`;
+
export const Avatar = ({ author, ...props }) => {
if (author.avatarUrl) {
return <MAvatar src={author.avatarUrl} {...props} />;
diff --git a/webui/src/bug/Bug.js b/webui/src/bug/Bug.js
index 1b19149d..ff57dfa9 100644
--- a/webui/src/bug/Bug.js
+++ b/webui/src/bug/Bug.js
@@ -94,13 +94,10 @@ Bug.fragment = gql`
...Label
}
createdAt
- author {
- email
- name
- displayName
- }
+ ...authored
}
${Label.fragment}
+ ${Author.fragment}
`;
export default Bug;
diff --git a/webui/src/bug/LabelChange.js b/webui/src/bug/LabelChange.js
index 1e05b4a6..2405fdb5 100644
--- a/webui/src/bug/LabelChange.js
+++ b/webui/src/bug/LabelChange.js
@@ -44,11 +44,7 @@ LabelChange.fragment = gql`
fragment LabelChange on TimelineItem {
... on LabelChangeTimelineItem {
date
- author {
- name
- email
- displayName
- }
+ ...authored
added {
...Label
}
@@ -57,7 +53,9 @@ LabelChange.fragment = gql`
}
}
}
+
${Label.fragment}
+ ${Author.fragment}
`;
export default LabelChange;
diff --git a/webui/src/bug/Message.js b/webui/src/bug/Message.js
index ff039444..8a6cac09 100644
--- a/webui/src/bug/Message.js
+++ b/webui/src/bug/Message.js
@@ -70,32 +70,26 @@ Message.createFragment = gql`
fragment Create on TimelineItem {
... on CreateTimelineItem {
createdAt
- author {
- name
- email
- displayName
- avatarUrl
- }
+ ...authored
edited
message
}
}
+
+ ${Author.fragment}
`;
Message.commentFragment = gql`
fragment AddComment on TimelineItem {
... on AddCommentTimelineItem {
createdAt
- author {
- name
- email
- displayName
- avatarUrl
- }
+ ...authored
edited
message
}
}
+
+ ${Author.fragment}
`;
export default Message;
diff --git a/webui/src/bug/SetStatus.js b/webui/src/bug/SetStatus.js
index ab591038..eeff1a7b 100644
--- a/webui/src/bug/SetStatus.js
+++ b/webui/src/bug/SetStatus.js
@@ -26,14 +26,12 @@ SetStatus.fragment = gql`
fragment SetStatus on TimelineItem {
... on SetStatusTimelineItem {
date
- author {
- name
- email
- displayName
- }
+ ...authored
status
}
}
+
+ ${Author.fragment}
`;
export default SetStatus;
diff --git a/webui/src/bug/SetTitle.js b/webui/src/bug/SetTitle.js
index d9a09ad5..9ba5a76e 100644
--- a/webui/src/bug/SetTitle.js
+++ b/webui/src/bug/SetTitle.js
@@ -32,15 +32,13 @@ SetTitle.fragment = gql`
fragment SetTitle on TimelineItem {
... on SetTitleTimelineItem {
date
- author {
- name
- email
- displayName
- }
+ ...authored
title
was
}
}
+
+ ${Author.fragment}
`;
export default SetTitle;
diff --git a/webui/src/list/BugRow.js b/webui/src/list/BugRow.js
index cfac4616..c5fc7647 100644
--- a/webui/src/list/BugRow.js
+++ b/webui/src/list/BugRow.js
@@ -9,6 +9,7 @@ import React from 'react';
import { Link } from 'react-router-dom';
import Date from '../Date';
import Label from '../Label';
+import Author from '../Author';
const Open = ({ className }) => (
<Tooltip title="Open">
@@ -97,12 +98,11 @@ BugRow.fragment = gql`
labels {
...Label
}
- author {
- name
- displayName
- }
+ ...authored
}
+
${Label.fragment}
+ ${Author.fragment}
`;
export default BugRow;