katello 5.0.0 → 5.0.1

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 (202) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/locale/bn/katello.js +23 -14
  3. data/app/assets/javascripts/katello/locale/bn_IN/katello.js +22 -13
  4. data/app/assets/javascripts/katello/locale/ca/katello.js +23 -14
  5. data/app/assets/javascripts/katello/locale/cs/katello.js +23 -14
  6. data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +26 -17
  7. data/app/assets/javascripts/katello/locale/de/katello.js +27 -18
  8. data/app/assets/javascripts/katello/locale/de_AT/katello.js +22 -13
  9. data/app/assets/javascripts/katello/locale/de_DE/katello.js +24 -15
  10. data/app/assets/javascripts/katello/locale/el/katello.js +24 -15
  11. data/app/assets/javascripts/katello/locale/en/katello.js +23 -14
  12. data/app/assets/javascripts/katello/locale/en_GB/katello.js +22 -13
  13. data/app/assets/javascripts/katello/locale/en_US/katello.js +22 -13
  14. data/app/assets/javascripts/katello/locale/es/katello.js +27 -18
  15. data/app/assets/javascripts/katello/locale/et_EE/katello.js +22 -13
  16. data/app/assets/javascripts/katello/locale/fr/katello.js +273 -264
  17. data/app/assets/javascripts/katello/locale/gl/katello.js +22 -13
  18. data/app/assets/javascripts/katello/locale/gu/katello.js +22 -13
  19. data/app/assets/javascripts/katello/locale/he_IL/katello.js +22 -13
  20. data/app/assets/javascripts/katello/locale/hi/katello.js +22 -13
  21. data/app/assets/javascripts/katello/locale/id/katello.js +22 -13
  22. data/app/assets/javascripts/katello/locale/it/katello.js +25 -16
  23. data/app/assets/javascripts/katello/locale/ja/katello.js +351 -342
  24. data/app/assets/javascripts/katello/locale/ka/katello.js +28 -19
  25. data/app/assets/javascripts/katello/locale/kn/katello.js +22 -13
  26. data/app/assets/javascripts/katello/locale/ko/katello.js +270 -261
  27. data/app/assets/javascripts/katello/locale/ml_IN/katello.js +22 -13
  28. data/app/assets/javascripts/katello/locale/mr/katello.js +22 -13
  29. data/app/assets/javascripts/katello/locale/nl_NL/katello.js +22 -13
  30. data/app/assets/javascripts/katello/locale/or/katello.js +22 -13
  31. data/app/assets/javascripts/katello/locale/pa/katello.js +22 -13
  32. data/app/assets/javascripts/katello/locale/pl/katello.js +22 -13
  33. data/app/assets/javascripts/katello/locale/pl_PL/katello.js +22 -13
  34. data/app/assets/javascripts/katello/locale/pt/katello.js +22 -13
  35. data/app/assets/javascripts/katello/locale/pt_BR/katello.js +28 -19
  36. data/app/assets/javascripts/katello/locale/ro/katello.js +22 -13
  37. data/app/assets/javascripts/katello/locale/ro_RO/katello.js +22 -13
  38. data/app/assets/javascripts/katello/locale/ru/katello.js +25 -16
  39. data/app/assets/javascripts/katello/locale/sl/katello.js +22 -13
  40. data/app/assets/javascripts/katello/locale/sv_SE/katello.js +22 -13
  41. data/app/assets/javascripts/katello/locale/ta/katello.js +23 -14
  42. data/app/assets/javascripts/katello/locale/ta_IN/katello.js +22 -13
  43. data/app/assets/javascripts/katello/locale/te/katello.js +22 -13
  44. data/app/assets/javascripts/katello/locale/tr/katello.js +22 -13
  45. data/app/assets/javascripts/katello/locale/vi/katello.js +22 -13
  46. data/app/assets/javascripts/katello/locale/vi_VN/katello.js +22 -13
  47. data/app/assets/javascripts/katello/locale/zh/katello.js +22 -13
  48. data/app/assets/javascripts/katello/locale/zh_CN/katello.js +258 -249
  49. data/app/assets/javascripts/katello/locale/zh_TW/katello.js +25 -16
  50. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +29 -26
  51. data/app/controllers/katello/api/v2/content_view_histories_controller.rb +1 -1
  52. data/app/lib/katello/concerns/base_template_scope_extensions.rb +61 -2
  53. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn.po +0 -12
  54. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn_IN.po +0 -12
  55. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ca.po +0 -12
  56. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/cs_CZ.po +0 -12
  57. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +0 -12
  58. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_AT.po +0 -12
  59. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_DE.po +0 -12
  60. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/el.po +0 -12
  61. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_GB.po +0 -12
  62. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_US.po +0 -12
  63. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +0 -12
  64. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/et_EE.po +0 -12
  65. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +23 -24
  66. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gl.po +0 -12
  67. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gu.po +0 -12
  68. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/he_IL.po +0 -12
  69. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/hi.po +0 -12
  70. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/id.po +0 -12
  71. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +0 -12
  72. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +20 -30
  73. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ka.po +0 -12
  74. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/kn.po +0 -12
  75. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +31 -39
  76. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ml_IN.po +0 -12
  77. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/mr.po +0 -12
  78. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/nl_NL.po +0 -12
  79. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/or.po +0 -12
  80. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pa.po +0 -12
  81. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl.po +0 -12
  82. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl_PL.po +0 -12
  83. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt.po +0 -12
  84. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +0 -12
  85. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro.po +0 -12
  86. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro_RO.po +0 -12
  87. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +0 -12
  88. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sl.po +0 -12
  89. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sv_SE.po +0 -12
  90. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta.po +0 -12
  91. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta_IN.po +0 -12
  92. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/te.po +0 -12
  93. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/tr.po +0 -12
  94. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi.po +0 -12
  95. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi_VN.po +0 -12
  96. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh.po +0 -12
  97. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +8 -17
  98. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +0 -12
  99. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +8 -8
  100. data/lib/katello/version.rb +1 -1
  101. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  102. data/locale/bn/katello.po +23 -14
  103. data/locale/bn_IN/LC_MESSAGES/katello.mo +0 -0
  104. data/locale/bn_IN/katello.po +22 -13
  105. data/locale/ca/LC_MESSAGES/katello.mo +0 -0
  106. data/locale/ca/katello.po +23 -14
  107. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  108. data/locale/cs/katello.po +24 -14
  109. data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
  110. data/locale/cs_CZ/katello.po +27 -18
  111. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  112. data/locale/de/katello.po +28 -19
  113. data/locale/de_AT/LC_MESSAGES/katello.mo +0 -0
  114. data/locale/de_AT/katello.po +22 -13
  115. data/locale/de_DE/LC_MESSAGES/katello.mo +0 -0
  116. data/locale/de_DE/katello.po +25 -16
  117. data/locale/el/LC_MESSAGES/katello.mo +0 -0
  118. data/locale/el/katello.po +24 -15
  119. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  120. data/locale/en/katello.po +24 -14
  121. data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
  122. data/locale/en_GB/katello.po +22 -13
  123. data/locale/en_US/LC_MESSAGES/katello.mo +0 -0
  124. data/locale/en_US/katello.po +22 -13
  125. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  126. data/locale/es/katello.po +29 -21
  127. data/locale/et_EE/LC_MESSAGES/katello.mo +0 -0
  128. data/locale/et_EE/katello.po +22 -13
  129. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  130. data/locale/fr/katello.po +277 -268
  131. data/locale/gl/LC_MESSAGES/katello.mo +0 -0
  132. data/locale/gl/katello.po +22 -13
  133. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  134. data/locale/gu/katello.po +22 -13
  135. data/locale/he_IL/LC_MESSAGES/katello.mo +0 -0
  136. data/locale/he_IL/katello.po +22 -13
  137. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  138. data/locale/hi/katello.po +22 -13
  139. data/locale/id/LC_MESSAGES/katello.mo +0 -0
  140. data/locale/id/katello.po +22 -13
  141. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  142. data/locale/it/katello.po +25 -16
  143. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  144. data/locale/ja/katello.po +352 -343
  145. data/locale/ka/LC_MESSAGES/katello.mo +0 -0
  146. data/locale/ka/katello.po +28 -19
  147. data/locale/katello.pot +148 -142
  148. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  149. data/locale/kn/katello.po +22 -13
  150. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  151. data/locale/ko/katello.po +273 -263
  152. data/locale/ml_IN/LC_MESSAGES/katello.mo +0 -0
  153. data/locale/ml_IN/katello.po +22 -13
  154. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  155. data/locale/mr/katello.po +22 -13
  156. data/locale/nl_NL/LC_MESSAGES/katello.mo +0 -0
  157. data/locale/nl_NL/katello.po +22 -13
  158. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  159. data/locale/or/katello.po +22 -13
  160. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  161. data/locale/pa/katello.po +22 -13
  162. data/locale/pl/LC_MESSAGES/katello.mo +0 -0
  163. data/locale/pl/katello.po +22 -13
  164. data/locale/pl_PL/LC_MESSAGES/katello.mo +0 -0
  165. data/locale/pl_PL/katello.po +22 -13
  166. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  167. data/locale/pt/katello.po +22 -13
  168. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  169. data/locale/pt_BR/katello.po +30 -21
  170. data/locale/ro/LC_MESSAGES/katello.mo +0 -0
  171. data/locale/ro/katello.po +22 -13
  172. data/locale/ro_RO/LC_MESSAGES/katello.mo +0 -0
  173. data/locale/ro_RO/katello.po +22 -13
  174. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  175. data/locale/ru/katello.po +25 -16
  176. data/locale/sl/LC_MESSAGES/katello.mo +0 -0
  177. data/locale/sl/katello.po +22 -13
  178. data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
  179. data/locale/sv_SE/katello.po +22 -13
  180. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  181. data/locale/ta/katello.po +23 -14
  182. data/locale/ta_IN/LC_MESSAGES/katello.mo +0 -0
  183. data/locale/ta_IN/katello.po +22 -13
  184. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  185. data/locale/te/katello.po +22 -13
  186. data/locale/tr/LC_MESSAGES/katello.mo +0 -0
  187. data/locale/tr/katello.po +22 -13
  188. data/locale/vi/LC_MESSAGES/katello.mo +0 -0
  189. data/locale/vi/katello.po +22 -13
  190. data/locale/vi_VN/LC_MESSAGES/katello.mo +0 -0
  191. data/locale/vi_VN/katello.po +22 -13
  192. data/locale/zh/LC_MESSAGES/katello.mo +0 -0
  193. data/locale/zh/katello.po +22 -13
  194. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  195. data/locale/zh_CN/katello.po +259 -250
  196. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  197. data/locale/zh_TW/katello.po +25 -16
  198. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionContent.js +1 -11
  199. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailConfig.js +0 -28
  200. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.test.js +46 -1
  201. data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersionContent.test.js +41 -0
  202. metadata +9 -2
Binary file
@@ -10,7 +10,7 @@
10
10
  #
11
11
  msgid ""
12
12
  msgstr ""
13
- "Project-Id-Version: katello 5.0.0.rc2\n"
13
+ "Project-Id-Version: katello 5.0.0\n"
14
14
  "Report-Msgid-Bugs-To: \n"
15
15
  "PO-Revision-Date: 2017-12-19 20:14+0000\n"
16
16
  "Last-Translator: Bryan Kearney <bryan.kearney@gmail.com>, 2026\n"
@@ -1374,6 +1374,9 @@ msgstr ""
1374
1374
  msgid "Clean Backend Objects"
1375
1375
  msgstr ""
1376
1376
 
1377
+ msgid "Clear"
1378
+ msgstr ""
1379
+
1377
1380
  msgid "Clear any previous registration and run subscription-manager with --force."
1378
1381
  msgstr ""
1379
1382
 
@@ -1477,7 +1480,7 @@ msgid "Configuration updated on Foreman"
1477
1480
  msgstr ""
1478
1481
 
1479
1482
  msgid "Confirm"
1480
- msgstr ""
1483
+ msgstr "確認"
1481
1484
 
1482
1485
  msgid "Confirm Deletion"
1483
1486
  msgstr ""
@@ -2586,6 +2589,9 @@ msgstr "下載除錯憑證"
2586
2589
  msgid "Download rate limit"
2587
2590
  msgstr ""
2588
2591
 
2592
+ msgid "Drag here"
2593
+ msgstr ""
2594
+
2589
2595
  msgid "Due to a change in your organizations, this container name has become ambiguous (org name '%{org_label}'). If you wish to continue using this container name, destroy the organization in conflict with '%{o_name} (id %{o_id}). If you wish to keep both orgs, destroy '%{o_label}/%{prod_label}/%{root_repo_label}' and retry your push using the id format."
2590
2596
  msgstr ""
2591
2597
 
@@ -3216,7 +3222,7 @@ msgid "Generate RHUI certificates for the desired repositories as necessary."
3216
3222
  msgstr ""
3217
3223
 
3218
3224
  msgid "Generate and Download"
3219
- msgstr "產生與下載"
3225
+ msgstr ""
3220
3226
 
3221
3227
  msgid "Generate containerfile install command (%s package selected)"
3222
3228
  msgid_plural "Generate containerfile install command (%s packages selected)"
@@ -4712,6 +4718,9 @@ msgstr ""
4712
4718
  msgid "Manifest expiring soon"
4713
4719
  msgstr ""
4714
4720
 
4721
+ msgid "Manifest history table"
4722
+ msgstr ""
4723
+
4715
4724
  msgid "Manifest imported"
4716
4725
  msgstr ""
4717
4726
 
@@ -5479,6 +5488,9 @@ msgstr ""
5479
5488
  msgid "One or more processes require restarting"
5480
5489
  msgstr ""
5481
5490
 
5491
+ msgid "Only .zip manifest files are accepted"
5492
+ msgstr ""
5493
+
5482
5494
  msgid "Only On Demand repositories may have space reclaimed."
5483
5495
  msgstr ""
5484
5496
 
@@ -5521,9 +5533,6 @@ msgstr "組織不能是空的。"
5521
5533
  msgid "Organization id"
5522
5534
  msgstr "組織 ID"
5523
5535
 
5524
- msgid "Organization id not found: '%s'"
5525
- msgstr ""
5526
-
5527
5536
  msgid "Organization identifier"
5528
5537
  msgstr "組織識別子"
5529
5538
 
@@ -5539,9 +5548,6 @@ msgstr ""
5539
5548
  msgid "Organization not found"
5540
5549
  msgstr ""
5541
5550
 
5542
- msgid "Organization not found: '%s'"
5543
- msgstr ""
5544
-
5545
5551
  msgid "Organization required"
5546
5552
  msgstr "需要的組織"
5547
5553
 
@@ -5835,9 +5841,6 @@ msgid ""
5835
5841
  " this is not the same product id as the products api returns"
5836
5842
  msgstr ""
5837
5843
 
5838
- msgid "Product id not found: '%s'"
5839
- msgstr ""
5840
-
5841
5844
  msgid "Product label"
5842
5845
  msgstr ""
5843
5846
 
@@ -5853,9 +5856,6 @@ msgstr "產品名稱"
5853
5856
  msgid "Product name as listed from a host's installed products"
5854
5857
  msgstr "來自主機已安裝產品的產品名稱"
5855
5858
 
5856
- msgid "Product not found: '%s'"
5857
- msgstr ""
5858
-
5859
5859
  msgid "Product the repository belongs to"
5860
5860
  msgstr "產品的軟體庫屬於"
5861
5861
 
@@ -6564,6 +6564,9 @@ msgstr ""
6564
6564
  msgid "Requested access to '%s' is denied"
6565
6565
  msgstr ""
6566
6566
 
6567
+ msgid "Requested repository name is unknown to the registry."
6568
+ msgstr ""
6569
+
6567
6570
  msgid "Requirements is not valid yaml."
6568
6571
  msgstr ""
6569
6572
 
@@ -6850,7 +6853,7 @@ msgid "Saving subscription quantities..."
6850
6853
  msgstr ""
6851
6854
 
6852
6855
  msgid "Saving..."
6853
- msgstr ""
6856
+ msgstr "正在儲存…"
6854
6857
 
6855
6858
  msgid "Scan"
6856
6859
  msgstr ""
@@ -8786,6 +8789,9 @@ msgstr ""
8786
8789
  msgid "Upgrade via remote execution"
8787
8790
  msgstr ""
8788
8791
 
8792
+ msgid "Upload"
8793
+ msgstr "上傳"
8794
+
8789
8795
  msgid "Upload Content Credential contents"
8790
8796
  msgstr ""
8791
8797
 
@@ -8795,6 +8801,9 @@ msgstr "上傳一組檔案內容"
8795
8801
  msgid "Upload a subscription manifest"
8796
8802
  msgstr "上傳訂閱清單"
8797
8803
 
8804
+ msgid "Upload a zip file"
8805
+ msgstr ""
8806
+
8798
8807
  msgid "Upload content"
8799
8808
  msgstr ""
8800
8809
 
@@ -14,7 +14,6 @@ const ContentViewVersionContent = ({ cvId, versionId, cvVersion }) => {
14
14
  docker_manifest_list_count: dockerManifestListCount = 0,
15
15
  docker_tag_count: dockerTagCount = 0,
16
16
  file_count: fileCount = 0,
17
- module_stream_count: moduleStreamCount = 0,
18
17
  ansible_collection_count: ansibleCollectionCount = 0,
19
18
  } = cvVersion;
20
19
 
@@ -36,7 +35,7 @@ const ContentViewVersionContent = ({ cvId, versionId, cvVersion }) => {
36
35
 
37
36
  const noCounts =
38
37
  !Number(debCount) && !Number(dockerManifestCount) && !Number(dockerTagCount) &&
39
- !Number(fileCount) && !Number(moduleStreamCount) && !Number(ansibleCollectionCount) &&
38
+ !Number(fileCount) && !Number(ansibleCollectionCount) &&
40
39
  !Number(dockerManifestListCount) && !contentConfigTypes?.length;
41
40
 
42
41
  if (noCounts) {
@@ -45,13 +44,6 @@ const ContentViewVersionContent = ({ cvId, versionId, cvVersion }) => {
45
44
 
46
45
  return (
47
46
  <>
48
- {moduleStreamCount > 0 &&
49
- <>
50
- <Link to={`/versions/${versionId}/moduleStreams`}>
51
- {`${moduleStreamCount} Module streams`}
52
- </Link><br />
53
- </>
54
- }
55
47
  {debCount > 0 &&
56
48
  <>
57
49
  <Link to={`/versions/${versionId}/debPackages`}>
@@ -100,7 +92,6 @@ ContentViewVersionContent.propTypes = {
100
92
  docker_manifest_list_count: PropTypes.number,
101
93
  docker_tag_count: PropTypes.number,
102
94
  file_count: PropTypes.number,
103
- module_stream_count: PropTypes.number,
104
95
  ansible_collection_count: PropTypes.number,
105
96
  }),
106
97
  };
@@ -113,7 +104,6 @@ ContentViewVersionContent.defaultProps = {
113
104
  docker_manifest_count: 0,
114
105
  docker_tag_count: 0,
115
106
  file_count: 0,
116
- module_stream_count: 0,
117
107
  ansible_collection_count: 0,
118
108
  },
119
109
  };
@@ -16,7 +16,6 @@ import {
16
16
  getDockerTags,
17
17
  getErrata,
18
18
  getFiles,
19
- getModuleStreams,
20
19
  getPackageGroups,
21
20
  getRepositories,
22
21
  getRPMPackages,
@@ -33,8 +32,6 @@ import {
33
32
  selectFilesStatus,
34
33
  selectErrata,
35
34
  selectErrataStatus,
36
- selectModuleStreams,
37
- selectModuleStreamsStatus,
38
35
  selectRepositories,
39
36
  selectRepositoriesStatus,
40
37
  selectRPMPackageGroups,
@@ -255,31 +252,6 @@ export default ({ cvId, versionId }) => [
255
252
  },
256
253
  ],
257
254
  },
258
- {
259
- name: __('Module Streams'),
260
- route: 'moduleStreams',
261
- repoType: 'yum',
262
- getCountKey: item => item?.module_stream_count,
263
- responseSelector: state => selectModuleStreams(state),
264
- statusSelector: state => selectModuleStreamsStatus(state),
265
- autocompleteEndpoint: '/katello/api/v2/module_streams',
266
- autocompleteQueryParams: { content_view_version_id: versionId },
267
- bookmarkController: 'katello_content_view_components',
268
- fetchItems: params => getModuleStreams({ content_view_version_id: versionId, ...params }),
269
- columnHeaders: [
270
- {
271
- title: __('Name'),
272
- getProperty: item => (
273
- <a href={urlBuilder(`content/module_streams/${item?.id}`, '')}>
274
- {item?.name}
275
- </a>),
276
- },
277
- { title: __('Stream'), getProperty: item => item?.stream },
278
- { title: __('Version'), getProperty: item => item?.version },
279
- { title: __('Context'), getProperty: item => item?.context },
280
- { title: __('Arch'), getProperty: item => item?.arch },
281
- ],
282
- },
283
255
  {
284
256
  name: __('Deb Packages'),
285
257
  route: 'debPackages',
@@ -165,7 +165,7 @@ const testConfig = [
165
165
  },
166
166
  {
167
167
  name: 'Module Streams',
168
- countKey: 'module_stream_count',
168
+ countKey: 'modulemd_count',
169
169
  autoCompleteUrl: '/module_streams/auto_complete_search',
170
170
  dataUrl: api.getApiUrl('/module_streams'),
171
171
  data: ContentViewVersionModuleStreamsData,
@@ -260,6 +260,51 @@ testConfig.forEach(({
260
260
  done();
261
261
  }));
262
262
 
263
+ test('Does not duplicate Module Streams tab when both count keys are present', async () => {
264
+ const { version } = ContentViewVersionDetailsData;
265
+ const autocompleteScope = mockAutocomplete(
266
+ nockInstance,
267
+ '/module_streams/auto_complete_search',
268
+ autocompleteQuery('Module Streams'),
269
+ );
270
+
271
+ const scope = nockInstance
272
+ .get(cvVersions)
273
+ .query(true)
274
+ .reply(200, {
275
+ ...getTabSpecificData('modulemd_count'),
276
+ module_stream_count: ContentViewVersionDetailsCounts.module_stream_count,
277
+ });
278
+
279
+ const tabScope = nockInstance
280
+ .get(api.getApiUrl('/module_streams'))
281
+ .query(queryParams('Module Streams'))
282
+ .reply(200, ContentViewVersionModuleStreamsData);
283
+
284
+ const { getByText, queryByText, getAllByRole } = renderWithRedux(
285
+ withCVRoute(<ContentViewVersionDetails cvId={3} details={cvDetailData} />),
286
+ renderOptions,
287
+ );
288
+
289
+ expect(queryByText(`Version ${version}`)).toBeNull();
290
+ await patientlyWaitFor(() => {
291
+ expect(getByText(`Version ${version}`)).toBeTruthy();
292
+ });
293
+
294
+ await patientlyWaitFor(() => {
295
+ const moduleStreamTabs = getAllByRole('tab', { name: /Module Streams/ });
296
+ expect(moduleStreamTabs).toHaveLength(1);
297
+ });
298
+
299
+ await new Promise((resolve) => {
300
+ assertNockRequest(autocompleteScope, () => {
301
+ assertNockRequest(scope, () => {
302
+ assertNockRequest(tabScope, resolve);
303
+ });
304
+ });
305
+ });
306
+ });
307
+
263
308
  test('Can change repository selector', async (done) => {
264
309
  const {
265
310
  countKey,
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import { renderWithRedux } from 'react-testing-lib-wrapper';
3
+ import ContentViewVersionContent from '../ContentViewVersionContent';
4
+
5
+ const renderContent = cvVersion =>
6
+ renderWithRedux(<ContentViewVersionContent
7
+ cvId={3}
8
+ versionId={73}
9
+ cvVersion={cvVersion}
10
+ />);
11
+
12
+ test('Shows no content when version has no counts', () => {
13
+ const { getByText } = renderContent({});
14
+
15
+ expect(getByText('No content')).toBeInTheDocument();
16
+ });
17
+
18
+ test('Shows module streams once from the generic content config', () => {
19
+ const { getByText, getAllByText } = renderContent({ modulemd_count: 14 });
20
+
21
+ expect(getAllByText('14 Module streams')).toHaveLength(1);
22
+ expect(getByText('14 Module streams').closest('a'))
23
+ .toHaveAttribute('href', expect.stringContaining('moduleStreams'));
24
+ });
25
+
26
+ test('Does not duplicate module streams when both count keys are present', () => {
27
+ const { getAllByText, queryByText } = renderContent({
28
+ modulemd_count: 14,
29
+ module_stream_count: 14,
30
+ });
31
+
32
+ expect(getAllByText('14 Module streams')).toHaveLength(1);
33
+ expect(queryByText('No content')).not.toBeInTheDocument();
34
+ });
35
+
36
+ test('Does not show module streams from the legacy count key alone', () => {
37
+ const { getByText, queryByText } = renderContent({ module_stream_count: 14 });
38
+
39
+ expect(queryByText(/Module streams/i)).not.toBeInTheDocument();
40
+ expect(getByText('No content')).toBeInTheDocument();
41
+ });
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: katello
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0
4
+ version: 5.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - N/A
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-09-08 00:00:00.000000000 Z
11
+ date: 2026-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -101,6 +101,9 @@ dependencies:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: 7.1.0
104
+ - - "<"
105
+ - !ruby/object:Gem::Version
106
+ version: 18.0.0
104
107
  type: :runtime
105
108
  prerelease: false
106
109
  version_requirements: !ruby/object:Gem::Requirement
@@ -108,6 +111,9 @@ dependencies:
108
111
  - - ">="
109
112
  - !ruby/object:Gem::Version
110
113
  version: 7.1.0
114
+ - - "<"
115
+ - !ruby/object:Gem::Version
116
+ version: 18.0.0
111
117
  - !ruby/object:Gem::Dependency
112
118
  name: dynflow
113
119
  requirement: !ruby/object:Gem::Requirement
@@ -5212,6 +5218,7 @@ files:
5212
5218
  - webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionRpmPackages.fixtures.json
5213
5219
  - webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewTaskInProgressResponse.fixtures.json
5214
5220
  - webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewTaskResponse.fixtures.json
5221
+ - webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersionContent.test.js
5215
5222
  - webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.fixtures.json
5216
5223
  - webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.test.js
5217
5224
  - webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersionsLatestEnvironment.fixtures.json