@strapi/admin 5.21.0 → 5.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/dist/admin/admin/src/StrapiApp.js +38 -8
  2. package/dist/admin/admin/src/StrapiApp.js.map +1 -1
  3. package/dist/admin/admin/src/StrapiApp.mjs +36 -6
  4. package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/GuidedTour/Context.js +23 -8
  6. package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -1
  7. package/dist/admin/admin/src/components/GuidedTour/Context.mjs +23 -8
  8. package/dist/admin/admin/src/components/GuidedTour/Context.mjs.map +1 -1
  9. package/dist/admin/admin/src/components/GuidedTour/Overview.js +7 -5
  10. package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
  11. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs +7 -5
  12. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
  13. package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.js +156 -0
  14. package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.js.map +1 -0
  15. package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.mjs +154 -0
  16. package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.mjs.map +1 -0
  17. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentManagerSteps.js +221 -0
  18. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentManagerSteps.js.map +1 -0
  19. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentManagerSteps.mjs +219 -0
  20. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentManagerSteps.mjs.map +1 -0
  21. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js +219 -0
  22. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -0
  23. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs +217 -0
  24. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -0
  25. package/dist/admin/admin/src/components/GuidedTour/{Step.js → Steps/Step.js} +116 -71
  26. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -0
  27. package/dist/admin/admin/src/components/GuidedTour/{Step.mjs → Steps/Step.mjs} +117 -74
  28. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -0
  29. package/dist/admin/admin/src/components/GuidedTour/Tours.js +47 -322
  30. package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
  31. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +48 -324
  32. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
  33. package/dist/admin/admin/src/components/GuidedTour/utils/constants.js +19 -0
  34. package/dist/admin/admin/src/components/GuidedTour/utils/constants.js.map +1 -0
  35. package/dist/admin/admin/src/components/GuidedTour/utils/constants.mjs +17 -0
  36. package/dist/admin/admin/src/components/GuidedTour/utils/constants.mjs.map +1 -0
  37. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.js +31 -0
  38. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.js.map +1 -0
  39. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.mjs +29 -0
  40. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.mjs.map +1 -0
  41. package/dist/admin/admin/src/components/SubNav.js +3 -1
  42. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  43. package/dist/admin/admin/src/components/SubNav.mjs +3 -1
  44. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  45. package/dist/admin/admin/src/components/Widgets.js +27 -9
  46. package/dist/admin/admin/src/components/Widgets.js.map +1 -1
  47. package/dist/admin/admin/src/components/Widgets.mjs +28 -10
  48. package/dist/admin/admin/src/components/Widgets.mjs.map +1 -1
  49. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  50. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  51. package/dist/admin/admin/src/pages/Home/HomePage.js +40 -33
  52. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  53. package/dist/admin/admin/src/pages/Home/HomePage.mjs +41 -34
  54. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  55. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +17 -14
  56. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
  57. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +17 -14
  58. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
  59. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +31 -6
  60. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  61. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs +12 -6
  62. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
  63. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js +28 -24
  64. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
  65. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs +28 -24
  66. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs.map +1 -1
  67. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
  68. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
  69. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +56 -57
  70. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
  71. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs +57 -58
  72. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
  73. package/dist/admin/admin/src/services/apiTokens.js +0 -1
  74. package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
  75. package/dist/admin/admin/src/services/apiTokens.mjs +0 -1
  76. package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
  77. package/dist/admin/admin/src/translations/en.json.js +35 -21
  78. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  79. package/dist/admin/admin/src/translations/en.json.mjs +35 -21
  80. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  81. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js +131 -0
  82. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js.map +1 -0
  83. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.mjs +129 -0
  84. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.mjs.map +1 -0
  85. package/dist/admin/ee/admin/src/constants.js +3 -1
  86. package/dist/admin/ee/admin/src/constants.js.map +1 -1
  87. package/dist/admin/ee/admin/src/constants.mjs +3 -2
  88. package/dist/admin/ee/admin/src/constants.mjs.map +1 -1
  89. package/dist/admin/index.js +6 -2
  90. package/dist/admin/index.js.map +1 -1
  91. package/dist/admin/index.mjs +2 -0
  92. package/dist/admin/index.mjs.map +1 -1
  93. package/dist/admin/src/components/GuidedTour/Context.d.ts +26 -9
  94. package/dist/admin/src/components/GuidedTour/Steps/ApiTokensSteps.d.ts +20 -0
  95. package/dist/admin/src/components/GuidedTour/Steps/ContentManagerSteps.d.ts +21 -0
  96. package/dist/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.d.ts +30 -0
  97. package/dist/admin/src/components/GuidedTour/{Step.d.ts → Steps/Step.d.ts} +25 -6
  98. package/dist/admin/src/components/GuidedTour/Tours.d.ts +53 -14
  99. package/dist/admin/src/components/GuidedTour/utils/constants.d.ts +15 -0
  100. package/dist/admin/src/components/GuidedTour/utils/migrations.d.ts +6 -0
  101. package/dist/admin/src/features/Tracking.d.ts +20 -2
  102. package/dist/admin/src/index.d.ts +5 -0
  103. package/dist/admin/src/pages/Home/HomePage.d.ts +2 -2
  104. package/dist/ee/admin/src/components/AuditLogs/Widgets.d.ts +2 -0
  105. package/dist/ee/admin/src/constants.d.ts +1 -0
  106. package/dist/server/server/src/controllers/admin.js +2 -5
  107. package/dist/server/server/src/controllers/admin.js.map +1 -1
  108. package/dist/server/server/src/controllers/admin.mjs +2 -5
  109. package/dist/server/server/src/controllers/admin.mjs.map +1 -1
  110. package/dist/server/server/src/services/index.js +0 -2
  111. package/dist/server/server/src/services/index.js.map +1 -1
  112. package/dist/server/server/src/services/index.mjs +0 -2
  113. package/dist/server/server/src/services/index.mjs.map +1 -1
  114. package/dist/server/src/controllers/admin.d.ts +1 -1
  115. package/dist/server/src/controllers/admin.d.ts.map +1 -1
  116. package/dist/server/src/controllers/index.d.ts +1 -1
  117. package/dist/server/src/index.d.ts +1 -6
  118. package/dist/server/src/index.d.ts.map +1 -1
  119. package/dist/server/src/services/constants.d.ts +1 -0
  120. package/dist/server/src/services/guided-tour.d.ts +2 -3
  121. package/dist/server/src/services/guided-tour.d.ts.map +1 -1
  122. package/dist/server/src/services/index.d.ts +0 -5
  123. package/dist/server/src/services/index.d.ts.map +1 -1
  124. package/dist/shared/contracts/admin.d.ts +2 -2
  125. package/dist/shared/contracts/admin.d.ts.map +1 -1
  126. package/package.json +7 -7
  127. package/dist/admin/admin/src/components/GuidedTour/Step.js.map +0 -1
  128. package/dist/admin/admin/src/components/GuidedTour/Step.mjs.map +0 -1
  129. package/dist/server/server/src/services/guided-tour.js +0 -61
  130. package/dist/server/server/src/services/guided-tour.js.map +0 -1
  131. package/dist/server/server/src/services/guided-tour.mjs +0 -59
  132. package/dist/server/server/src/services/guided-tour.mjs.map +0 -1
@@ -89,7 +89,7 @@ var en = {
89
89
  "HomePage.widget.loading": "Loading widget content",
90
90
  "HomePage.widget.error": "Couldn't load widget content.",
91
91
  "HomePage.widget.no-data": "No content found.",
92
- "HomePage.widget.no-permissions": "You dont have the permission to see this widget",
92
+ "HomePage.widget.no-permissions": "You don't have the permission to see this widget",
93
93
  "Media Library": "Media Library",
94
94
  "New entry": "New entry",
95
95
  Password: Password,
@@ -103,6 +103,7 @@ var en = {
103
103
  "Roles.RoleRow.user-count": "{number, plural, =0 {# user} one {# user} other {# users}}",
104
104
  "Roles.components.List.empty.withSearch": "There is no role corresponding to the search ({search})...",
105
105
  "Settings.PageTitle": "Settings — {name}",
106
+ "Settings.apiTokens.copy.lastWarning": "Copy your API token",
106
107
  "Settings.apiTokens.ListView.headers.createdAt": "Created at",
107
108
  "Settings.apiTokens.ListView.headers.description": "Description",
108
109
  "Settings.apiTokens.ListView.headers.lastUsedAt": "Last used",
@@ -824,32 +825,42 @@ var en = {
824
825
  selectButtonTitle: selectButtonTitle,
825
826
  skipToContent: skipToContent,
826
827
  submit: submit,
827
- "tours.contentTypeBuilder.Introduction.title": "Content-Type Builder",
828
- "tours.contentTypeBuilder.Introduction.content": "Create and manage your content structure with collection types, single types and components.",
828
+ "tours.contentTypeBuilder.Introduction.title": "Welcome to the Content-Type Builder!",
829
+ "tours.contentTypeBuilder.Introduction.content": "Here you create and manage the structure of your app with collection types, single types, and reusable components. Let's dive in!",
829
830
  "tours.contentTypeBuilder.CollectionTypes.title": "Collection Types",
830
- "tours.contentTypeBuilder.CollectionTypes.content": "A content structure that can manage multiple entries, such as articles or products.",
831
+ "tours.contentTypeBuilder.CollectionTypes.content": "These are your go-to for managing multiple entries think blog posts or products.",
831
832
  "tours.contentTypeBuilder.SingleTypes.title": "Single Types",
832
- "tours.contentTypeBuilder.SingleTypes.content": "A content structure that can manage only one entry, such as a homepage or a contact page.",
833
+ "tours.contentTypeBuilder.SingleTypes.content": "Perfect for one-off entries like your homepage or site settings.",
833
834
  "tours.contentTypeBuilder.Components.title": "Components",
834
- "tours.contentTypeBuilder.Components.content": "A content structure that can be used in multiple collection types or single types.",
835
- "tours.contentTypeBuilder.Finish.title": "It's time to create content!",
836
- "tours.contentTypeBuilder.Finish.content": "Now that you created content types, you'll be able to create content in the content manager.",
835
+ "tours.contentTypeBuilder.Components.content": "Build it once, reuse it everywhere. Use components for things like buttons, cards, or sliders.",
836
+ "tours.contentTypeBuilder.YourTurn.title": "Your turn Build something!",
837
+ "tours.contentTypeBuilder.YourTurn.content": "Go ahead and create a collection type or single type. Click the \"+\" button, pick a name, hit \"Continue\", and we'll guide you from there.",
838
+ "tours.contentTypeBuilder.AddFields.title": "Add a field to bring it to life",
839
+ "tours.contentTypeBuilder.AddFields.content": "Start by adding your first field — like a name, image, or relation. Your content type needs a shape before it can hold content.",
840
+ "tours.contentTypeBuilder.Save.title": "Don't leave without saving!",
841
+ "tours.contentTypeBuilder.Save.content": "Click the \"Save\" button to lock in your content type and avoid losing your work. Almost done!",
842
+ "tours.contentTypeBuilder.Finish.title": "First Step: Done! 🎉",
843
+ "tours.contentTypeBuilder.Finish.content": "You've built your first content type! Now head over to the Content Manager to start adding entries!",
844
+ "tours.apiTokens.Introduction.title": "Last but not least, API tokens",
845
+ "tours.apiTokens.Introduction.content": "Control API access with highly customizable permissions.",
846
+ "tours.apiTokens.ManageAPIToken.title": "Manage an API token",
847
+ "tours.apiTokens.ManageAPIToken.content": "Click the \"Pencil\" icon to view and update an existing API token.",
848
+ "tours.apiTokens.ViewAPIToken.title": "View API token",
849
+ "tours.apiTokens.ViewAPIToken.content": "Click the \"View token\" button to see your API token.",
850
+ "tours.apiTokens.CopyAPIToken.title": "Copy your API token",
851
+ "tours.apiTokens.CopyAPIToken.content": "Click the \"Copy\" button to save your API token, you will need it to make requests to your application. {spacer} Still have questions? Learn more about <a>API tokens</a>.",
852
+ "tours.apiTokens.FinalStep.title": "Congratulations, it's time to deploy your application!",
853
+ "tours.apiTokens.FinalStep.content": "You have everything you need to deploy your application and share content with the world.",
837
854
  "tours.contentManager.Introduction.title": "Content manager",
838
855
  "tours.contentManager.Introduction.content": "Create and manage content from your collection types and single types.",
839
- "tours.apiTokens.Introduction.title": "API tokens",
840
- "tours.apiTokens.Introduction.content": "Create and manage API tokens with highly customizable permissions.",
841
- "tours.apiTokens.CreateAnAPIToken.title": "Create an API token",
842
- "tours.apiTokens.CreateAnAPIToken.content": "Create a new API token. Choose a name, duration and type.",
843
- "tours.apiTokens.CopyAPIToken.title": "Copy your new API token",
844
- "tours.apiTokens.CopyAPIToken.content": "Make sure to do it now, you won't be able to see it again. You'll need to generate a new one if you lose it.",
845
- "tours.apiTokens.FinalStep.title": "It's time to deploy your application!",
846
- "tours.apiTokens.FinalStep.content": "Your application is ready to be deployed and its content to be shared with the world!",
856
+ "tours.contentManager.CreateNewEntry.title": "Create new entry",
857
+ "tours.contentManager.CreateNewEntry.content": "Click the \"Create new entry\" button to create and publish a new entry for this collection type.",
847
858
  "tours.contentManager.Fields.title": "Fields",
848
- "tours.contentManager.Fields.content": "Add content to the fields created in the Content-Type Builder.",
859
+ "tours.contentManager.Fields.content": "First, fill in the fields you created in the Content-Type Builder.",
849
860
  "tours.contentManager.Publish.title": "Publish",
850
- "tours.contentManager.Publish.content": "Publish entries to make their content available through the content API.",
851
- "tours.contentManager.FinalStep.title": "It's time to create API Tokens!",
852
- "tours.contentManager.FinalStep.content": "Now that you've created and published content, time to create API tokens and set up permissions.",
861
+ "tours.contentManager.Publish.content": "Then click the \"Publish\" button to make your content available through the content API.",
862
+ "tours.contentManager.FinalStep.title": "Time to setup API tokens!",
863
+ "tours.contentManager.FinalStep.content": "Now that you've created and published an entry, let's setup an API token to manage access to your content.",
853
864
  "tours.stepCount": "Step {currentStep} of {tourLength}",
854
865
  "tours.skip": "Skip",
855
866
  "tours.next": "Next",
@@ -860,7 +871,7 @@ var en = {
860
871
  "tours.overview.tasks": "Your tasks",
861
872
  "tours.overview.contentTypeBuilder.label": "Create your schema",
862
873
  "tours.overview.contentManager.label": "Create and publish content",
863
- "tours.overview.apiTokens.label": "Create and copy an API token",
874
+ "tours.overview.apiTokens.label": "Copy an API token",
864
875
  "tours.overview.strapiCloud.label": "Deploy your application to Strapi Cloud",
865
876
  "tours.overview.strapiCloud.link": "Read documentation",
866
877
  "tours.overview.tour.link": "Start",
@@ -879,6 +890,9 @@ var en = {
879
890
  "widget.key-statistics.list.entries": "Entries",
880
891
  "widget.key-statistics.list.locales": "Locales",
881
892
  "widget.key-statistics.list.webhooks": "Webhooks",
893
+ "widget.last-activity.link": "Open Audit Logs",
894
+ "widget.last-activity.no-activity": "No activity",
895
+ "widget.last-activity.title": "Last activity",
882
896
  "widget.profile.title": "Profile"
883
897
  };
884
898
 
@@ -1 +1 @@
1
- {"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -85,7 +85,7 @@ var en = {
85
85
  "HomePage.widget.loading": "Loading widget content",
86
86
  "HomePage.widget.error": "Couldn't load widget content.",
87
87
  "HomePage.widget.no-data": "No content found.",
88
- "HomePage.widget.no-permissions": "You dont have the permission to see this widget",
88
+ "HomePage.widget.no-permissions": "You don't have the permission to see this widget",
89
89
  "Media Library": "Media Library",
90
90
  "New entry": "New entry",
91
91
  Password: Password,
@@ -99,6 +99,7 @@ var en = {
99
99
  "Roles.RoleRow.user-count": "{number, plural, =0 {# user} one {# user} other {# users}}",
100
100
  "Roles.components.List.empty.withSearch": "There is no role corresponding to the search ({search})...",
101
101
  "Settings.PageTitle": "Settings — {name}",
102
+ "Settings.apiTokens.copy.lastWarning": "Copy your API token",
102
103
  "Settings.apiTokens.ListView.headers.createdAt": "Created at",
103
104
  "Settings.apiTokens.ListView.headers.description": "Description",
104
105
  "Settings.apiTokens.ListView.headers.lastUsedAt": "Last used",
@@ -820,32 +821,42 @@ var en = {
820
821
  selectButtonTitle: selectButtonTitle,
821
822
  skipToContent: skipToContent,
822
823
  submit: submit,
823
- "tours.contentTypeBuilder.Introduction.title": "Content-Type Builder",
824
- "tours.contentTypeBuilder.Introduction.content": "Create and manage your content structure with collection types, single types and components.",
824
+ "tours.contentTypeBuilder.Introduction.title": "Welcome to the Content-Type Builder!",
825
+ "tours.contentTypeBuilder.Introduction.content": "Here you create and manage the structure of your app with collection types, single types, and reusable components. Let's dive in!",
825
826
  "tours.contentTypeBuilder.CollectionTypes.title": "Collection Types",
826
- "tours.contentTypeBuilder.CollectionTypes.content": "A content structure that can manage multiple entries, such as articles or products.",
827
+ "tours.contentTypeBuilder.CollectionTypes.content": "These are your go-to for managing multiple entries think blog posts or products.",
827
828
  "tours.contentTypeBuilder.SingleTypes.title": "Single Types",
828
- "tours.contentTypeBuilder.SingleTypes.content": "A content structure that can manage only one entry, such as a homepage or a contact page.",
829
+ "tours.contentTypeBuilder.SingleTypes.content": "Perfect for one-off entries like your homepage or site settings.",
829
830
  "tours.contentTypeBuilder.Components.title": "Components",
830
- "tours.contentTypeBuilder.Components.content": "A content structure that can be used in multiple collection types or single types.",
831
- "tours.contentTypeBuilder.Finish.title": "It's time to create content!",
832
- "tours.contentTypeBuilder.Finish.content": "Now that you created content types, you'll be able to create content in the content manager.",
831
+ "tours.contentTypeBuilder.Components.content": "Build it once, reuse it everywhere. Use components for things like buttons, cards, or sliders.",
832
+ "tours.contentTypeBuilder.YourTurn.title": "Your turn Build something!",
833
+ "tours.contentTypeBuilder.YourTurn.content": "Go ahead and create a collection type or single type. Click the \"+\" button, pick a name, hit \"Continue\", and we'll guide you from there.",
834
+ "tours.contentTypeBuilder.AddFields.title": "Add a field to bring it to life",
835
+ "tours.contentTypeBuilder.AddFields.content": "Start by adding your first field — like a name, image, or relation. Your content type needs a shape before it can hold content.",
836
+ "tours.contentTypeBuilder.Save.title": "Don't leave without saving!",
837
+ "tours.contentTypeBuilder.Save.content": "Click the \"Save\" button to lock in your content type and avoid losing your work. Almost done!",
838
+ "tours.contentTypeBuilder.Finish.title": "First Step: Done! 🎉",
839
+ "tours.contentTypeBuilder.Finish.content": "You've built your first content type! Now head over to the Content Manager to start adding entries!",
840
+ "tours.apiTokens.Introduction.title": "Last but not least, API tokens",
841
+ "tours.apiTokens.Introduction.content": "Control API access with highly customizable permissions.",
842
+ "tours.apiTokens.ManageAPIToken.title": "Manage an API token",
843
+ "tours.apiTokens.ManageAPIToken.content": "Click the \"Pencil\" icon to view and update an existing API token.",
844
+ "tours.apiTokens.ViewAPIToken.title": "View API token",
845
+ "tours.apiTokens.ViewAPIToken.content": "Click the \"View token\" button to see your API token.",
846
+ "tours.apiTokens.CopyAPIToken.title": "Copy your API token",
847
+ "tours.apiTokens.CopyAPIToken.content": "Click the \"Copy\" button to save your API token, you will need it to make requests to your application. {spacer} Still have questions? Learn more about <a>API tokens</a>.",
848
+ "tours.apiTokens.FinalStep.title": "Congratulations, it's time to deploy your application!",
849
+ "tours.apiTokens.FinalStep.content": "You have everything you need to deploy your application and share content with the world.",
833
850
  "tours.contentManager.Introduction.title": "Content manager",
834
851
  "tours.contentManager.Introduction.content": "Create and manage content from your collection types and single types.",
835
- "tours.apiTokens.Introduction.title": "API tokens",
836
- "tours.apiTokens.Introduction.content": "Create and manage API tokens with highly customizable permissions.",
837
- "tours.apiTokens.CreateAnAPIToken.title": "Create an API token",
838
- "tours.apiTokens.CreateAnAPIToken.content": "Create a new API token. Choose a name, duration and type.",
839
- "tours.apiTokens.CopyAPIToken.title": "Copy your new API token",
840
- "tours.apiTokens.CopyAPIToken.content": "Make sure to do it now, you won't be able to see it again. You'll need to generate a new one if you lose it.",
841
- "tours.apiTokens.FinalStep.title": "It's time to deploy your application!",
842
- "tours.apiTokens.FinalStep.content": "Your application is ready to be deployed and its content to be shared with the world!",
852
+ "tours.contentManager.CreateNewEntry.title": "Create new entry",
853
+ "tours.contentManager.CreateNewEntry.content": "Click the \"Create new entry\" button to create and publish a new entry for this collection type.",
843
854
  "tours.contentManager.Fields.title": "Fields",
844
- "tours.contentManager.Fields.content": "Add content to the fields created in the Content-Type Builder.",
855
+ "tours.contentManager.Fields.content": "First, fill in the fields you created in the Content-Type Builder.",
845
856
  "tours.contentManager.Publish.title": "Publish",
846
- "tours.contentManager.Publish.content": "Publish entries to make their content available through the content API.",
847
- "tours.contentManager.FinalStep.title": "It's time to create API Tokens!",
848
- "tours.contentManager.FinalStep.content": "Now that you've created and published content, time to create API tokens and set up permissions.",
857
+ "tours.contentManager.Publish.content": "Then click the \"Publish\" button to make your content available through the content API.",
858
+ "tours.contentManager.FinalStep.title": "Time to setup API tokens!",
859
+ "tours.contentManager.FinalStep.content": "Now that you've created and published an entry, let's setup an API token to manage access to your content.",
849
860
  "tours.stepCount": "Step {currentStep} of {tourLength}",
850
861
  "tours.skip": "Skip",
851
862
  "tours.next": "Next",
@@ -856,7 +867,7 @@ var en = {
856
867
  "tours.overview.tasks": "Your tasks",
857
868
  "tours.overview.contentTypeBuilder.label": "Create your schema",
858
869
  "tours.overview.contentManager.label": "Create and publish content",
859
- "tours.overview.apiTokens.label": "Create and copy an API token",
870
+ "tours.overview.apiTokens.label": "Copy an API token",
860
871
  "tours.overview.strapiCloud.label": "Deploy your application to Strapi Cloud",
861
872
  "tours.overview.strapiCloud.link": "Read documentation",
862
873
  "tours.overview.tour.link": "Start",
@@ -875,6 +886,9 @@ var en = {
875
886
  "widget.key-statistics.list.entries": "Entries",
876
887
  "widget.key-statistics.list.locales": "Locales",
877
888
  "widget.key-statistics.list.webhooks": "Webhooks",
889
+ "widget.last-activity.link": "Open Audit Logs",
890
+ "widget.last-activity.no-activity": "No activity",
891
+ "widget.last-activity.title": "Last activity",
878
892
  "widget.profile.title": "Profile"
879
893
  };
880
894
 
@@ -1 +1 @@
1
- {"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,131 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var strapiAdmin = require('@strapi/admin/strapi-admin');
5
+ var designSystem = require('@strapi/design-system');
6
+ var icons = require('@strapi/icons');
7
+ var reactIntl = require('react-intl');
8
+ var reactRouterDom = require('react-router-dom');
9
+ var styled = require('styled-components');
10
+ var RelativeTime$1 = require('../../../../../admin/src/components/RelativeTime.js');
11
+ var useQueryParams = require('../../../../../admin/src/hooks/useQueryParams.js');
12
+ var constants = require('../../constants.js');
13
+ var getActionTypesDefaultMessages = require('../../pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.js');
14
+ var auditLogs = require('../../services/auditLogs.js');
15
+
16
+ const RelativeTime = styled.styled(RelativeTime$1.RelativeTime)`
17
+ display: inline-block;
18
+
19
+ &::first-letter {
20
+ text-transform: uppercase;
21
+ }
22
+ `;
23
+ const LastActivityTable = ({ items })=>{
24
+ const { formatMessage } = reactIntl.useIntl();
25
+ const { trackUsage } = strapiAdmin.useTracking();
26
+ const navigate = reactRouterDom.useNavigate();
27
+ const getAuditLogDetailsLink = (item)=>{
28
+ return `/settings/audit-logs?pageSize=${constants.AUDIT_LOGS_DEFAULT_PAGE_SIZE}&page=1&sort=date:DESC&id=${item.id}`;
29
+ };
30
+ const handleRowClick = (document)=>()=>{
31
+ trackUsage('willOpenAuditLogDetailsFromHome');
32
+ const link = getAuditLogDetailsLink(document);
33
+ navigate(link);
34
+ };
35
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Table, {
36
+ colCount: 4,
37
+ rowCount: items?.length ?? 0,
38
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tbody, {
39
+ children: items?.map((item)=>{
40
+ const action = formatMessage({
41
+ id: `Settings.permissions.auditLogs.${item.action}`,
42
+ // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.
43
+ defaultMessage: getActionTypesDefaultMessages.getDefaultMessage(item.action)
44
+ }, {
45
+ model: item.payload.model ?? ''
46
+ });
47
+ const userDisplayName = item.user?.displayName ?? '-';
48
+ return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Tr, {
49
+ onClick: handleRowClick(item),
50
+ cursor: "pointer",
51
+ children: [
52
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
53
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
54
+ title: action,
55
+ variant: "omega",
56
+ textColor: "neutral800",
57
+ children: action
58
+ })
59
+ }),
60
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
61
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
62
+ variant: "omega",
63
+ textColor: "neutral800",
64
+ children: /*#__PURE__*/ jsxRuntime.jsx(RelativeTime, {
65
+ timestamp: new Date(item.date)
66
+ })
67
+ })
68
+ }),
69
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
70
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
71
+ title: userDisplayName,
72
+ variant: "omega",
73
+ textColor: "neutral800",
74
+ children: userDisplayName
75
+ })
76
+ }),
77
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
78
+ onClick: (e)=>e.stopPropagation(),
79
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
80
+ display: "inline-block",
81
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
82
+ tag: reactRouterDom.Link,
83
+ to: getAuditLogDetailsLink(item),
84
+ onClick: ()=>trackUsage('willOpenAuditLogDetailsFromHome'),
85
+ label: formatMessage({
86
+ id: 'global.details',
87
+ defaultMessage: 'Details'
88
+ }),
89
+ variant: "ghost",
90
+ children: /*#__PURE__*/ jsxRuntime.jsx(icons.Eye, {})
91
+ })
92
+ })
93
+ })
94
+ ]
95
+ }, `lastActivity_auditLog_${item.id}`);
96
+ })
97
+ })
98
+ });
99
+ };
100
+ const AuditLogsWidget = ()=>{
101
+ const { formatMessage } = reactIntl.useIntl();
102
+ const [{ query }] = useQueryParams.useQueryParams();
103
+ const { data, isLoading, error } = auditLogs.useGetAuditLogsQuery({
104
+ ...query,
105
+ page: 1,
106
+ pageSize: 4,
107
+ sort: 'date:DESC'
108
+ }, {
109
+ refetchOnMountOrArgChange: true
110
+ });
111
+ if (isLoading) {
112
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.Loading, {});
113
+ }
114
+ if (error || !data?.results) {
115
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.Error, {});
116
+ }
117
+ if (data.results.length === 0) {
118
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.NoData, {
119
+ children: formatMessage({
120
+ id: 'widget.last-activity.no-activity',
121
+ defaultMessage: 'No activity'
122
+ })
123
+ });
124
+ }
125
+ return /*#__PURE__*/ jsxRuntime.jsx(LastActivityTable, {
126
+ items: data.results ?? []
127
+ });
128
+ };
129
+
130
+ exports.AuditLogsWidget = AuditLogsWidget;
131
+ //# sourceMappingURL=Widgets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Widgets.js","sources":["../../../../../../../ee/admin/src/components/AuditLogs/Widgets.tsx"],"sourcesContent":["import { useTracking, Widget } from '@strapi/admin/strapi-admin';\nimport { Box, IconButton, Table, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Eye } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { RelativeTime as BaseRelativeTime } from '../../../../../admin/src/components/RelativeTime';\nimport { useQueryParams } from '../../../../../admin/src/hooks/useQueryParams';\nimport { AuditLog } from '../../../../../shared/contracts/audit-logs';\nimport { AUDIT_LOGS_DEFAULT_PAGE_SIZE } from '../../constants';\nimport { getDefaultMessage } from '../../pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages';\nimport { useGetAuditLogsQuery } from '../../services/auditLogs';\n\nconst RelativeTime = styled(BaseRelativeTime)`\n display: inline-block;\n\n &::first-letter {\n text-transform: uppercase;\n }\n`;\n\nconst LastActivityTable = ({ items }: { items: AuditLog[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getAuditLogDetailsLink = (item: AuditLog): string => {\n return `/settings/audit-logs?pageSize=${AUDIT_LOGS_DEFAULT_PAGE_SIZE}&page=1&sort=date:DESC&id=${item.id}`;\n };\n\n const handleRowClick = (document: AuditLog) => () => {\n trackUsage('willOpenAuditLogDetailsFromHome');\n const link = getAuditLogDetailsLink(document);\n navigate(link);\n };\n\n return (\n <Table colCount={4} rowCount={items?.length ?? 0}>\n <Tbody>\n {items?.map((item) => {\n const action = formatMessage(\n {\n id: `Settings.permissions.auditLogs.${item.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(item.action),\n },\n { model: (item.payload.model as string) ?? '' }\n );\n const userDisplayName = item.user?.displayName ?? '-';\n return (\n <Tr\n onClick={handleRowClick(item)}\n cursor=\"pointer\"\n key={`lastActivity_auditLog_${item.id}`}\n >\n <Td>\n <Typography title={action} variant=\"omega\" textColor=\"neutral800\">\n {action}\n </Typography>\n </Td>\n <Td>\n <Typography variant=\"omega\" textColor=\"neutral800\">\n <RelativeTime timestamp={new Date(item.date)} />\n </Typography>\n </Td>\n <Td>\n <Typography title={userDisplayName} variant=\"omega\" textColor=\"neutral800\">\n {userDisplayName}\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getAuditLogDetailsLink(item)}\n onClick={() => trackUsage('willOpenAuditLogDetailsFromHome')}\n label={formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n </Table>\n );\n};\n\nconst AuditLogsWidget = () => {\n const { formatMessage } = useIntl();\n const [{ query }] = useQueryParams();\n const { data, isLoading, error } = useGetAuditLogsQuery(\n {\n ...query,\n page: 1,\n pageSize: 4,\n sort: 'date:DESC',\n },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data?.results) {\n return <Widget.Error />;\n }\n\n if (data.results.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'widget.last-activity.no-activity',\n defaultMessage: 'No activity',\n })}\n </Widget.NoData>\n );\n }\n\n return <LastActivityTable items={data.results ?? []} />;\n};\n\nexport { AuditLogsWidget };\n"],"names":["RelativeTime","styled","BaseRelativeTime","LastActivityTable","items","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getAuditLogDetailsLink","item","AUDIT_LOGS_DEFAULT_PAGE_SIZE","id","handleRowClick","document","link","_jsx","Table","colCount","rowCount","length","Tbody","map","action","defaultMessage","getDefaultMessage","model","payload","userDisplayName","user","displayName","_jsxs","Tr","onClick","cursor","Td","Typography","title","variant","textColor","timestamp","Date","date","e","stopPropagation","Box","display","IconButton","tag","Link","to","label","Eye","AuditLogsWidget","query","useQueryParams","data","isLoading","error","useGetAuditLogsQuery","page","pageSize","sort","refetchOnMountOrArgChange","Widget","Loading","results","Error","NoData"],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { Widget, useTracking } from '@strapi/admin/strapi-admin';
3
+ import { Table, Tbody, Tr, Td, Typography, Box, IconButton } from '@strapi/design-system';
4
+ import { Eye } from '@strapi/icons';
5
+ import { useIntl } from 'react-intl';
6
+ import { useNavigate, Link } from 'react-router-dom';
7
+ import { styled } from 'styled-components';
8
+ import { RelativeTime as RelativeTime$1 } from '../../../../../admin/src/components/RelativeTime.mjs';
9
+ import { useQueryParams } from '../../../../../admin/src/hooks/useQueryParams.mjs';
10
+ import { AUDIT_LOGS_DEFAULT_PAGE_SIZE } from '../../constants.mjs';
11
+ import { getDefaultMessage } from '../../pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs';
12
+ import { useGetAuditLogsQuery } from '../../services/auditLogs.mjs';
13
+
14
+ const RelativeTime = styled(RelativeTime$1)`
15
+ display: inline-block;
16
+
17
+ &::first-letter {
18
+ text-transform: uppercase;
19
+ }
20
+ `;
21
+ const LastActivityTable = ({ items })=>{
22
+ const { formatMessage } = useIntl();
23
+ const { trackUsage } = useTracking();
24
+ const navigate = useNavigate();
25
+ const getAuditLogDetailsLink = (item)=>{
26
+ return `/settings/audit-logs?pageSize=${AUDIT_LOGS_DEFAULT_PAGE_SIZE}&page=1&sort=date:DESC&id=${item.id}`;
27
+ };
28
+ const handleRowClick = (document)=>()=>{
29
+ trackUsage('willOpenAuditLogDetailsFromHome');
30
+ const link = getAuditLogDetailsLink(document);
31
+ navigate(link);
32
+ };
33
+ return /*#__PURE__*/ jsx(Table, {
34
+ colCount: 4,
35
+ rowCount: items?.length ?? 0,
36
+ children: /*#__PURE__*/ jsx(Tbody, {
37
+ children: items?.map((item)=>{
38
+ const action = formatMessage({
39
+ id: `Settings.permissions.auditLogs.${item.action}`,
40
+ // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.
41
+ defaultMessage: getDefaultMessage(item.action)
42
+ }, {
43
+ model: item.payload.model ?? ''
44
+ });
45
+ const userDisplayName = item.user?.displayName ?? '-';
46
+ return /*#__PURE__*/ jsxs(Tr, {
47
+ onClick: handleRowClick(item),
48
+ cursor: "pointer",
49
+ children: [
50
+ /*#__PURE__*/ jsx(Td, {
51
+ children: /*#__PURE__*/ jsx(Typography, {
52
+ title: action,
53
+ variant: "omega",
54
+ textColor: "neutral800",
55
+ children: action
56
+ })
57
+ }),
58
+ /*#__PURE__*/ jsx(Td, {
59
+ children: /*#__PURE__*/ jsx(Typography, {
60
+ variant: "omega",
61
+ textColor: "neutral800",
62
+ children: /*#__PURE__*/ jsx(RelativeTime, {
63
+ timestamp: new Date(item.date)
64
+ })
65
+ })
66
+ }),
67
+ /*#__PURE__*/ jsx(Td, {
68
+ children: /*#__PURE__*/ jsx(Typography, {
69
+ title: userDisplayName,
70
+ variant: "omega",
71
+ textColor: "neutral800",
72
+ children: userDisplayName
73
+ })
74
+ }),
75
+ /*#__PURE__*/ jsx(Td, {
76
+ onClick: (e)=>e.stopPropagation(),
77
+ children: /*#__PURE__*/ jsx(Box, {
78
+ display: "inline-block",
79
+ children: /*#__PURE__*/ jsx(IconButton, {
80
+ tag: Link,
81
+ to: getAuditLogDetailsLink(item),
82
+ onClick: ()=>trackUsage('willOpenAuditLogDetailsFromHome'),
83
+ label: formatMessage({
84
+ id: 'global.details',
85
+ defaultMessage: 'Details'
86
+ }),
87
+ variant: "ghost",
88
+ children: /*#__PURE__*/ jsx(Eye, {})
89
+ })
90
+ })
91
+ })
92
+ ]
93
+ }, `lastActivity_auditLog_${item.id}`);
94
+ })
95
+ })
96
+ });
97
+ };
98
+ const AuditLogsWidget = ()=>{
99
+ const { formatMessage } = useIntl();
100
+ const [{ query }] = useQueryParams();
101
+ const { data, isLoading, error } = useGetAuditLogsQuery({
102
+ ...query,
103
+ page: 1,
104
+ pageSize: 4,
105
+ sort: 'date:DESC'
106
+ }, {
107
+ refetchOnMountOrArgChange: true
108
+ });
109
+ if (isLoading) {
110
+ return /*#__PURE__*/ jsx(Widget.Loading, {});
111
+ }
112
+ if (error || !data?.results) {
113
+ return /*#__PURE__*/ jsx(Widget.Error, {});
114
+ }
115
+ if (data.results.length === 0) {
116
+ return /*#__PURE__*/ jsx(Widget.NoData, {
117
+ children: formatMessage({
118
+ id: 'widget.last-activity.no-activity',
119
+ defaultMessage: 'No activity'
120
+ })
121
+ });
122
+ }
123
+ return /*#__PURE__*/ jsx(LastActivityTable, {
124
+ items: data.results ?? []
125
+ });
126
+ };
127
+
128
+ export { AuditLogsWidget };
129
+ //# sourceMappingURL=Widgets.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Widgets.mjs","sources":["../../../../../../../ee/admin/src/components/AuditLogs/Widgets.tsx"],"sourcesContent":["import { useTracking, Widget } from '@strapi/admin/strapi-admin';\nimport { Box, IconButton, Table, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Eye } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { RelativeTime as BaseRelativeTime } from '../../../../../admin/src/components/RelativeTime';\nimport { useQueryParams } from '../../../../../admin/src/hooks/useQueryParams';\nimport { AuditLog } from '../../../../../shared/contracts/audit-logs';\nimport { AUDIT_LOGS_DEFAULT_PAGE_SIZE } from '../../constants';\nimport { getDefaultMessage } from '../../pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages';\nimport { useGetAuditLogsQuery } from '../../services/auditLogs';\n\nconst RelativeTime = styled(BaseRelativeTime)`\n display: inline-block;\n\n &::first-letter {\n text-transform: uppercase;\n }\n`;\n\nconst LastActivityTable = ({ items }: { items: AuditLog[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getAuditLogDetailsLink = (item: AuditLog): string => {\n return `/settings/audit-logs?pageSize=${AUDIT_LOGS_DEFAULT_PAGE_SIZE}&page=1&sort=date:DESC&id=${item.id}`;\n };\n\n const handleRowClick = (document: AuditLog) => () => {\n trackUsage('willOpenAuditLogDetailsFromHome');\n const link = getAuditLogDetailsLink(document);\n navigate(link);\n };\n\n return (\n <Table colCount={4} rowCount={items?.length ?? 0}>\n <Tbody>\n {items?.map((item) => {\n const action = formatMessage(\n {\n id: `Settings.permissions.auditLogs.${item.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(item.action),\n },\n { model: (item.payload.model as string) ?? '' }\n );\n const userDisplayName = item.user?.displayName ?? '-';\n return (\n <Tr\n onClick={handleRowClick(item)}\n cursor=\"pointer\"\n key={`lastActivity_auditLog_${item.id}`}\n >\n <Td>\n <Typography title={action} variant=\"omega\" textColor=\"neutral800\">\n {action}\n </Typography>\n </Td>\n <Td>\n <Typography variant=\"omega\" textColor=\"neutral800\">\n <RelativeTime timestamp={new Date(item.date)} />\n </Typography>\n </Td>\n <Td>\n <Typography title={userDisplayName} variant=\"omega\" textColor=\"neutral800\">\n {userDisplayName}\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getAuditLogDetailsLink(item)}\n onClick={() => trackUsage('willOpenAuditLogDetailsFromHome')}\n label={formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n </Table>\n );\n};\n\nconst AuditLogsWidget = () => {\n const { formatMessage } = useIntl();\n const [{ query }] = useQueryParams();\n const { data, isLoading, error } = useGetAuditLogsQuery(\n {\n ...query,\n page: 1,\n pageSize: 4,\n sort: 'date:DESC',\n },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data?.results) {\n return <Widget.Error />;\n }\n\n if (data.results.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'widget.last-activity.no-activity',\n defaultMessage: 'No activity',\n })}\n </Widget.NoData>\n );\n }\n\n return <LastActivityTable items={data.results ?? []} />;\n};\n\nexport { AuditLogsWidget };\n"],"names":["RelativeTime","styled","BaseRelativeTime","LastActivityTable","items","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getAuditLogDetailsLink","item","AUDIT_LOGS_DEFAULT_PAGE_SIZE","id","handleRowClick","document","link","_jsx","Table","colCount","rowCount","length","Tbody","map","action","defaultMessage","getDefaultMessage","model","payload","userDisplayName","user","displayName","_jsxs","Tr","onClick","cursor","Td","Typography","title","variant","textColor","timestamp","Date","date","e","stopPropagation","Box","display","IconButton","tag","Link","to","label","Eye","AuditLogsWidget","query","useQueryParams","data","isLoading","error","useGetAuditLogsQuery","page","pageSize","sort","refetchOnMountOrArgChange","Widget","Loading","results","Error","NoData"],"mappings":"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"}
@@ -105,6 +105,7 @@ const ADMIN_PERMISSIONS_EE = {
105
105
  }
106
106
  }
107
107
  ] : [];
108
+ const AUDIT_LOGS_DEFAULT_PAGE_SIZE = 50;
108
109
  // TODO: the constants.js file is imported before the React application is setup and
109
110
  // therefore `window.strapi` might not exist at import-time. We should probably define
110
111
  // which constant is available at which stage of the application lifecycle.
@@ -129,7 +130,7 @@ const SETTINGS_LINKS_EE = ()=>({
129
130
  id: 'global.auditLogs',
130
131
  defaultMessage: 'Audit Logs'
131
132
  },
132
- to: '/settings/audit-logs?pageSize=50&page=1&sort=date:DESC',
133
+ to: `/settings/audit-logs?pageSize=${AUDIT_LOGS_DEFAULT_PAGE_SIZE}&page=1&sort=date:DESC`,
133
134
  id: 'auditLogs',
134
135
  licenseOnly: true
135
136
  }
@@ -138,6 +139,7 @@ const SETTINGS_LINKS_EE = ()=>({
138
139
  });
139
140
 
140
141
  exports.ADMIN_PERMISSIONS_EE = ADMIN_PERMISSIONS_EE;
142
+ exports.AUDIT_LOGS_DEFAULT_PAGE_SIZE = AUDIT_LOGS_DEFAULT_PAGE_SIZE;
141
143
  exports.SETTINGS_LINKS_EE = SETTINGS_LINKS_EE;
142
144
  exports.getEERoutes = getEERoutes;
143
145
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../../ee/admin/src/constants.ts"],"sourcesContent":["import type { SettingsMenu } from '../../../admin/src/constants';\nimport type { PermissionMap } from '../../../admin/src/types/permissions';\nimport type { RouteObject } from 'react-router-dom';\n\nexport const ADMIN_PERMISSIONS_EE = {\n settings: {\n auditLogs: {\n main: [{ action: 'admin::audit-logs.read', subject: null }],\n read: [{ action: 'admin::audit-logs.read', subject: null }],\n update: [{ action: 'admin::audit-logs.update', subject: null }],\n },\n 'review-workflows': {\n main: [{ action: 'admin::review-workflows.read', subject: null }],\n read: [{ action: 'admin::review-workflows.read', subject: null }],\n create: [{ action: 'admin::review-workflows.create', subject: null }],\n delete: [{ action: 'admin::review-workflows.delete', subject: null }],\n update: [{ action: 'admin::review-workflows.update', subject: null }],\n },\n sso: {\n main: [{ action: 'admin::provider-login.read', subject: null }],\n read: [{ action: 'admin::provider-login.read', subject: null }],\n update: [{ action: 'admin::provider-login.update', subject: null }],\n },\n releases: {\n read: [\n {\n action: 'plugin::content-releases.settings.read',\n subject: null,\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.settings.update',\n subject: null,\n },\n ],\n },\n },\n} satisfies {\n settings: Pick<PermissionMap['settings'], 'auditLogs' | 'review-workflows' | 'sso' | 'releases'>;\n};\n\n/**\n * Base EE routes, these are relative to the `root` of the app.\n * We use a function to get them so we're not looking at window\n * during build time.\n */\nexport const getEERoutes = (): RouteObject[] =>\n window.strapi.isEE\n ? [\n {\n path: 'auth/login/:authResponse',\n lazy: async () => {\n const { AuthResponse } = await import('./pages/AuthResponse');\n\n return {\n Component: AuthResponse,\n };\n },\n },\n ]\n : [];\n\n// TODO: the constants.js file is imported before the React application is setup and\n// therefore `window.strapi` might not exist at import-time. We should probably define\n// which constant is available at which stage of the application lifecycle.\nexport const SETTINGS_LINKS_EE = (): SettingsMenu => ({\n global: [\n ...(window.strapi.features.isEnabled(window.strapi.features.SSO)\n ? [\n {\n intlLabel: { id: 'Settings.sso.title', defaultMessage: 'Single Sign-On' },\n to: '/settings/single-sign-on',\n id: 'sso',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n\n admin: [\n ...(window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS)\n ? [\n {\n intlLabel: { id: 'global.auditLogs', defaultMessage: 'Audit Logs' },\n to: '/settings/audit-logs?pageSize=50&page=1&sort=date:DESC',\n id: 'auditLogs',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n});\n"],"names":["ADMIN_PERMISSIONS_EE","settings","auditLogs","main","action","subject","read","update","create","delete","sso","releases","getEERoutes","window","strapi","isEE","path","lazy","AuthResponse","Component","SETTINGS_LINKS_EE","global","features","isEnabled","SSO","intlLabel","id","defaultMessage","to","licenseOnly","admin","AUDIT_LOGS"],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sources":["../../../../../ee/admin/src/constants.ts"],"sourcesContent":["import type { SettingsMenu } from '../../../admin/src/constants';\nimport type { PermissionMap } from '../../../admin/src/types/permissions';\nimport type { RouteObject } from 'react-router-dom';\n\nexport const ADMIN_PERMISSIONS_EE = {\n settings: {\n auditLogs: {\n main: [{ action: 'admin::audit-logs.read', subject: null }],\n read: [{ action: 'admin::audit-logs.read', subject: null }],\n update: [{ action: 'admin::audit-logs.update', subject: null }],\n },\n 'review-workflows': {\n main: [{ action: 'admin::review-workflows.read', subject: null }],\n read: [{ action: 'admin::review-workflows.read', subject: null }],\n create: [{ action: 'admin::review-workflows.create', subject: null }],\n delete: [{ action: 'admin::review-workflows.delete', subject: null }],\n update: [{ action: 'admin::review-workflows.update', subject: null }],\n },\n sso: {\n main: [{ action: 'admin::provider-login.read', subject: null }],\n read: [{ action: 'admin::provider-login.read', subject: null }],\n update: [{ action: 'admin::provider-login.update', subject: null }],\n },\n releases: {\n read: [\n {\n action: 'plugin::content-releases.settings.read',\n subject: null,\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.settings.update',\n subject: null,\n },\n ],\n },\n },\n} satisfies {\n settings: Pick<PermissionMap['settings'], 'auditLogs' | 'review-workflows' | 'sso' | 'releases'>;\n};\n\n/**\n * Base EE routes, these are relative to the `root` of the app.\n * We use a function to get them so we're not looking at window\n * during build time.\n */\nexport const getEERoutes = (): RouteObject[] =>\n window.strapi.isEE\n ? [\n {\n path: 'auth/login/:authResponse',\n lazy: async () => {\n const { AuthResponse } = await import('./pages/AuthResponse');\n\n return {\n Component: AuthResponse,\n };\n },\n },\n ]\n : [];\n\nexport const AUDIT_LOGS_DEFAULT_PAGE_SIZE = 50;\n\n// TODO: the constants.js file is imported before the React application is setup and\n// therefore `window.strapi` might not exist at import-time. We should probably define\n// which constant is available at which stage of the application lifecycle.\nexport const SETTINGS_LINKS_EE = (): SettingsMenu => ({\n global: [\n ...(window.strapi.features.isEnabled(window.strapi.features.SSO)\n ? [\n {\n intlLabel: { id: 'Settings.sso.title', defaultMessage: 'Single Sign-On' },\n to: '/settings/single-sign-on',\n id: 'sso',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n\n admin: [\n ...(window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS)\n ? [\n {\n intlLabel: { id: 'global.auditLogs', defaultMessage: 'Audit Logs' },\n to: `/settings/audit-logs?pageSize=${AUDIT_LOGS_DEFAULT_PAGE_SIZE}&page=1&sort=date:DESC`,\n id: 'auditLogs',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n});\n"],"names":["ADMIN_PERMISSIONS_EE","settings","auditLogs","main","action","subject","read","update","create","delete","sso","releases","getEERoutes","window","strapi","isEE","path","lazy","AuthResponse","Component","AUDIT_LOGS_DEFAULT_PAGE_SIZE","SETTINGS_LINKS_EE","global","features","isEnabled","SSO","intlLabel","id","defaultMessage","to","licenseOnly","admin","AUDIT_LOGS"],"mappings":";;MAIaA,oBAAuB,GAAA;IAClCC,QAAU,EAAA;QACRC,SAAW,EAAA;YACTC,IAAM,EAAA;AAAC,gBAAA;oBAAEC,MAAQ,EAAA,wBAAA;oBAA0BC,OAAS,EAAA;AAAK;AAAE,aAAA;YAC3DC,IAAM,EAAA;AAAC,gBAAA;oBAAEF,MAAQ,EAAA,wBAAA;oBAA0BC,OAAS,EAAA;AAAK;AAAE,aAAA;YAC3DE,MAAQ,EAAA;AAAC,gBAAA;oBAAEH,MAAQ,EAAA,0BAAA;oBAA4BC,OAAS,EAAA;AAAK;AAAE;AACjE,SAAA;QACA,kBAAoB,EAAA;YAClBF,IAAM,EAAA;AAAC,gBAAA;oBAAEC,MAAQ,EAAA,8BAAA;oBAAgCC,OAAS,EAAA;AAAK;AAAE,aAAA;YACjEC,IAAM,EAAA;AAAC,gBAAA;oBAAEF,MAAQ,EAAA,8BAAA;oBAAgCC,OAAS,EAAA;AAAK;AAAE,aAAA;YACjEG,MAAQ,EAAA;AAAC,gBAAA;oBAAEJ,MAAQ,EAAA,gCAAA;oBAAkCC,OAAS,EAAA;AAAK;AAAE,aAAA;YACrEI,MAAQ,EAAA;AAAC,gBAAA;oBAAEL,MAAQ,EAAA,gCAAA;oBAAkCC,OAAS,EAAA;AAAK;AAAE,aAAA;YACrEE,MAAQ,EAAA;AAAC,gBAAA;oBAAEH,MAAQ,EAAA,gCAAA;oBAAkCC,OAAS,EAAA;AAAK;AAAE;AACvE,SAAA;QACAK,GAAK,EAAA;YACHP,IAAM,EAAA;AAAC,gBAAA;oBAAEC,MAAQ,EAAA,4BAAA;oBAA8BC,OAAS,EAAA;AAAK;AAAE,aAAA;YAC/DC,IAAM,EAAA;AAAC,gBAAA;oBAAEF,MAAQ,EAAA,4BAAA;oBAA8BC,OAAS,EAAA;AAAK;AAAE,aAAA;YAC/DE,MAAQ,EAAA;AAAC,gBAAA;oBAAEH,MAAQ,EAAA,8BAAA;oBAAgCC,OAAS,EAAA;AAAK;AAAE;AACrE,SAAA;QACAM,QAAU,EAAA;YACRL,IAAM,EAAA;AACJ,gBAAA;oBACEF,MAAQ,EAAA,wCAAA;oBACRC,OAAS,EAAA;AACX;AACD,aAAA;YACDE,MAAQ,EAAA;AACN,gBAAA;oBACEH,MAAQ,EAAA,0CAAA;oBACRC,OAAS,EAAA;AACX;AACD;AACH;AACF;AACF;AAIA;;;;UAKaO,WAAc,GAAA,IACzBC,OAAOC,MAAM,CAACC,IAAI,GACd;AACE,QAAA;YACEC,IAAM,EAAA,0BAAA;YACNC,IAAM,EAAA,UAAA;AACJ,gBAAA,MAAM,EAAEC,YAAY,EAAE,GAAG,MAAM,oDAAO,yBAAA,KAAA;gBAEtC,OAAO;oBACLC,SAAWD,EAAAA;AACb,iBAAA;AACF;AACF;AACD,KAAA,GACD;AAEC,MAAME,+BAA+B;AAE5C;AACA;AACA;AACO,MAAMC,iBAAoB,GAAA,KAAqB;QACpDC,MAAQ,EAAA;AACFT,YAAAA,GAAAA,MAAAA,CAAOC,MAAM,CAACS,QAAQ,CAACC,SAAS,CAACX,MAAOC,CAAAA,MAAM,CAACS,QAAQ,CAACE,GAAG,CAC3D,GAAA;AACE,gBAAA;oBACEC,SAAW,EAAA;wBAAEC,EAAI,EAAA,oBAAA;wBAAsBC,cAAgB,EAAA;AAAiB,qBAAA;oBACxEC,EAAI,EAAA,0BAAA;oBACJF,EAAI,EAAA,KAAA;oBACJG,WAAa,EAAA;AACf;AACD,aAAA,GACD;AACL,SAAA;QAEDC,KAAO,EAAA;AACDlB,YAAAA,GAAAA,MAAAA,CAAOC,MAAM,CAACS,QAAQ,CAACC,SAAS,CAACX,MAAOC,CAAAA,MAAM,CAACS,QAAQ,CAACS,UAAU,CAClE,GAAA;AACE,gBAAA;oBACEN,SAAW,EAAA;wBAAEC,EAAI,EAAA,kBAAA;wBAAoBC,cAAgB,EAAA;AAAa,qBAAA;AAClEC,oBAAAA,EAAAA,EAAI,CAAC,8BAA8B,EAAET,4BAAAA,CAA6B,sBAAsB,CAAC;oBACzFO,EAAI,EAAA,WAAA;oBACJG,WAAa,EAAA;AACf;AACD,aAAA,GACD;AACL;AACH,KAAA;;;;;;;"}
@@ -103,6 +103,7 @@ const ADMIN_PERMISSIONS_EE = {
103
103
  }
104
104
  }
105
105
  ] : [];
106
+ const AUDIT_LOGS_DEFAULT_PAGE_SIZE = 50;
106
107
  // TODO: the constants.js file is imported before the React application is setup and
107
108
  // therefore `window.strapi` might not exist at import-time. We should probably define
108
109
  // which constant is available at which stage of the application lifecycle.
@@ -127,7 +128,7 @@ const SETTINGS_LINKS_EE = ()=>({
127
128
  id: 'global.auditLogs',
128
129
  defaultMessage: 'Audit Logs'
129
130
  },
130
- to: '/settings/audit-logs?pageSize=50&page=1&sort=date:DESC',
131
+ to: `/settings/audit-logs?pageSize=${AUDIT_LOGS_DEFAULT_PAGE_SIZE}&page=1&sort=date:DESC`,
131
132
  id: 'auditLogs',
132
133
  licenseOnly: true
133
134
  }
@@ -135,5 +136,5 @@ const SETTINGS_LINKS_EE = ()=>({
135
136
  ]
136
137
  });
137
138
 
138
- export { ADMIN_PERMISSIONS_EE, SETTINGS_LINKS_EE, getEERoutes };
139
+ export { ADMIN_PERMISSIONS_EE, AUDIT_LOGS_DEFAULT_PAGE_SIZE, SETTINGS_LINKS_EE, getEERoutes };
139
140
  //# sourceMappingURL=constants.mjs.map