80 lines
1.5 KiB
GraphQL
80 lines
1.5 KiB
GraphQL
# ===============================================
|
|
# NAVIGATION
|
|
# ===============================================
|
|
|
|
extend type Query {
|
|
navigation: NavigationQuery
|
|
}
|
|
|
|
extend type Mutation {
|
|
navigation: NavigationMutation
|
|
}
|
|
|
|
# -----------------------------------------------
|
|
# QUERIES
|
|
# -----------------------------------------------
|
|
|
|
type NavigationQuery {
|
|
tree: [NavigationTree]!
|
|
config: NavigationConfig!
|
|
}
|
|
|
|
# -----------------------------------------------
|
|
# 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
|
|
}
|