You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
1.5 KiB

  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. visibilityMode: String
  47. visibilityGroups: [Int]
  48. }
  49. input NavigationItemInput {
  50. id: String!
  51. kind: String!
  52. label: String
  53. icon: String
  54. targetType: String
  55. target: String
  56. visibilityMode: String
  57. visibilityGroups: [Int]
  58. }
  59. type NavigationConfig {
  60. mode: NavigationMode!
  61. }
  62. enum NavigationMode {
  63. NONE
  64. TREE
  65. MIXED
  66. STATIC
  67. }