navigation.graphql 1.4 KB

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