1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# ===============================================
# NAVIGATION
# ===============================================
extend type Query {
navigation: NavigationQuery
}
extend type Mutation {
navigation: NavigationMutation
}
# -----------------------------------------------
# QUERIES
# -----------------------------------------------
type NavigationQuery {
tree: [NavigationTree]! @auth(requires: ["manage:navigation", "manage:system"])
config: NavigationConfig! @auth(requires: ["manage:navigation", "manage:system"])
}
# -----------------------------------------------
# MUTATIONS
# -----------------------------------------------
type NavigationMutation {
updateTree(
tree: [NavigationTreeInput]!
): DefaultResponse @auth(requires: ["manage:navigation", "manage:system"])
updateConfig(
mode: NavigationMode!
): DefaultResponse @auth(requires: ["manage:navigation", "manage:system"])
}
# -----------------------------------------------
# TYPES
# -----------------------------------------------
type NavigationTree {
locale: String!
items: [NavigationItem]!
}
input NavigationTreeInput {
locale: String!
items: [NavigationItemInput]!
}
type NavigationItem {
id: String!
kind: String!
label: String
icon: String
targetType: String
target: String
visibilityMode: String
visibilityGroups: [Int]
}
input NavigationItemInput {
id: String!
kind: String!
label: String
icon: String
targetType: String
target: String
visibilityMode: String
visibilityGroups: [Int]
}
type NavigationConfig {
mode: NavigationMode!
}
enum NavigationMode {
NONE
TREE
MIXED
STATIC
}