katello 4.15.0 → 4.16.0.rc1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of katello might be problematic. Click here for more details.

Files changed (505) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/common/katello_object.js +2 -2
  3. data/app/assets/javascripts/katello/locale/bn/katello.js +248 -263
  4. data/app/assets/javascripts/katello/locale/bn_IN/katello.js +247 -262
  5. data/app/assets/javascripts/katello/locale/ca/katello.js +247 -262
  6. data/app/assets/javascripts/katello/locale/cs/katello.js +521 -536
  7. data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +253 -268
  8. data/app/assets/javascripts/katello/locale/de/katello.js +248 -263
  9. data/app/assets/javascripts/katello/locale/de_AT/katello.js +247 -262
  10. data/app/assets/javascripts/katello/locale/de_DE/katello.js +249 -264
  11. data/app/assets/javascripts/katello/locale/el/katello.js +251 -266
  12. data/app/assets/javascripts/katello/locale/en/katello.js +253 -268
  13. data/app/assets/javascripts/katello/locale/en_GB/katello.js +263 -278
  14. data/app/assets/javascripts/katello/locale/en_US/katello.js +247 -262
  15. data/app/assets/javascripts/katello/locale/es/katello.js +248 -263
  16. data/app/assets/javascripts/katello/locale/et_EE/katello.js +247 -262
  17. data/app/assets/javascripts/katello/locale/fr/katello.js +250 -265
  18. data/app/assets/javascripts/katello/locale/gl/katello.js +247 -262
  19. data/app/assets/javascripts/katello/locale/gu/katello.js +249 -264
  20. data/app/assets/javascripts/katello/locale/he_IL/katello.js +249 -264
  21. data/app/assets/javascripts/katello/locale/hi/katello.js +248 -263
  22. data/app/assets/javascripts/katello/locale/id/katello.js +261 -275
  23. data/app/assets/javascripts/katello/locale/it/katello.js +252 -267
  24. data/app/assets/javascripts/katello/locale/ja/katello.js +250 -265
  25. data/app/assets/javascripts/katello/locale/ka/katello.js +247 -262
  26. data/app/assets/javascripts/katello/locale/kn/katello.js +248 -263
  27. data/app/assets/javascripts/katello/locale/ko/katello.js +248 -263
  28. data/app/assets/javascripts/katello/locale/ml_IN/katello.js +247 -262
  29. data/app/assets/javascripts/katello/locale/mr/katello.js +248 -263
  30. data/app/assets/javascripts/katello/locale/nl_NL/katello.js +252 -267
  31. data/app/assets/javascripts/katello/locale/or/katello.js +248 -263
  32. data/app/assets/javascripts/katello/locale/pa/katello.js +248 -263
  33. data/app/assets/javascripts/katello/locale/pl/katello.js +248 -263
  34. data/app/assets/javascripts/katello/locale/pl_PL/katello.js +247 -262
  35. data/app/assets/javascripts/katello/locale/pt/katello.js +248 -263
  36. data/app/assets/javascripts/katello/locale/pt_BR/katello.js +248 -263
  37. data/app/assets/javascripts/katello/locale/ro/katello.js +247 -262
  38. data/app/assets/javascripts/katello/locale/ro_RO/katello.js +247 -262
  39. data/app/assets/javascripts/katello/locale/ru/katello.js +253 -268
  40. data/app/assets/javascripts/katello/locale/sl/katello.js +247 -262
  41. data/app/assets/javascripts/katello/locale/sv_SE/katello.js +248 -263
  42. data/app/assets/javascripts/katello/locale/ta/katello.js +248 -263
  43. data/app/assets/javascripts/katello/locale/ta_IN/katello.js +247 -262
  44. data/app/assets/javascripts/katello/locale/te/katello.js +248 -263
  45. data/app/assets/javascripts/katello/locale/tr/katello.js +247 -262
  46. data/app/assets/javascripts/katello/locale/vi/katello.js +247 -262
  47. data/app/assets/javascripts/katello/locale/vi_VN/katello.js +247 -262
  48. data/app/assets/javascripts/katello/locale/zh/katello.js +247 -262
  49. data/app/assets/javascripts/katello/locale/zh_CN/katello.js +250 -265
  50. data/app/assets/javascripts/katello/locale/zh_TW/katello.js +255 -270
  51. data/app/assets/javascripts/katello/sync_management/sync_management.js +16 -2
  52. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +33 -9
  53. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +1 -1
  54. data/app/controllers/katello/api/v2/activation_keys_controller.rb +4 -9
  55. data/app/controllers/katello/api/v2/content_uploads_controller.rb +2 -1
  56. data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +3 -1
  57. data/app/controllers/katello/api/v2/content_views_controller.rb +4 -1
  58. data/app/controllers/katello/api/v2/environments_controller.rb +4 -0
  59. data/app/controllers/katello/api/v2/errata_controller.rb +12 -1
  60. data/app/controllers/katello/api/v2/flatpak_remote_repositories_controller.rb +81 -0
  61. data/app/controllers/katello/api/v2/flatpak_remotes_controller.rb +86 -0
  62. data/app/controllers/katello/api/v2/host_bootc_images_controller.rb +71 -0
  63. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +4 -6
  64. data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +3 -5
  65. data/app/controllers/katello/api/v2/repositories_controller.rb +18 -3
  66. data/app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb +0 -8
  67. data/app/controllers/katello/concerns/api/v2/http_proxies_controller_extensions.rb +17 -0
  68. data/app/controllers/katello/concerns/http_proxies_controller_extensions.rb +20 -0
  69. data/app/controllers/katello/sync_management_controller.rb +6 -2
  70. data/app/helpers/katello/content_source_helper.rb +8 -1
  71. data/app/helpers/katello/content_view_helper.rb +3 -1
  72. data/app/lib/actions/candlepin/activation_key/create.rb +1 -3
  73. data/app/lib/actions/candlepin/activation_key/update.rb +1 -3
  74. data/app/lib/actions/candlepin/environment/set_content.rb +17 -4
  75. data/app/lib/actions/katello/activation_key/create.rb +1 -2
  76. data/app/lib/actions/katello/activation_key/update.rb +2 -4
  77. data/app/lib/actions/katello/capsule_content/refresh_repos.rb +7 -1
  78. data/app/lib/actions/katello/content_view/presenters/incremental_updates_presenter.rb +3 -2
  79. data/app/lib/actions/katello/content_view/publish.rb +7 -2
  80. data/app/lib/actions/katello/content_view_environment/reassign_objects.rb +11 -2
  81. data/app/lib/actions/katello/content_view_version/incremental_update.rb +31 -22
  82. data/app/lib/actions/katello/flatpak/mirror_remote_repository.rb +30 -0
  83. data/app/lib/actions/katello/flatpak/scan_remote.rb +17 -12
  84. data/app/lib/actions/katello/host/update_system_purpose.rb +1 -6
  85. data/app/lib/actions/pulp3/orchestration/repository/import_upload.rb +18 -2
  86. data/app/lib/actions/pulp3/repository/multi_copy_units.rb +4 -0
  87. data/app/lib/katello/api/v2/rendering.rb +2 -1
  88. data/app/lib/katello/concerns/base_template_scope_extensions.rb +3 -4
  89. data/app/lib/katello/concerns/bookmark_controller_validator_extensions.rb +13 -0
  90. data/app/lib/katello/resources/candlepin/activation_key.rb +3 -5
  91. data/app/lib/katello/resources/candlepin/product.rb +2 -1
  92. data/app/lib/katello/util/cveak_migrator.rb +3 -2
  93. data/app/lib/katello/validators/alternate_content_source_path_validator.rb +2 -2
  94. data/app/lib/katello/validators/container_image_name_validator.rb +1 -1
  95. data/app/lib/katello/validators/content_validator.rb +1 -1
  96. data/app/lib/katello/validators/content_view_environment_coherent_default_validator.rb +2 -2
  97. data/app/lib/katello/validators/content_view_environment_org_validator.rb +2 -2
  98. data/app/lib/katello/validators/content_view_environment_validator.rb +3 -3
  99. data/app/lib/katello/validators/content_view_erratum_filter_rule_validator.rb +12 -12
  100. data/app/lib/katello/validators/content_view_filter_version_validator.rb +1 -1
  101. data/app/lib/katello/validators/generated_content_view_validator.rb +1 -1
  102. data/app/lib/katello/validators/gpg_key_content_type_validator.rb +2 -2
  103. data/app/lib/katello/validators/gpg_key_content_validator.rb +5 -5
  104. data/app/lib/katello/validators/katello_label_format_validator.rb +4 -4
  105. data/app/lib/katello/validators/katello_name_format_validator.rb +2 -2
  106. data/app/lib/katello/validators/katello_url_format_validator.rb +1 -1
  107. data/app/lib/katello/validators/library_presence_validator.rb +1 -1
  108. data/app/lib/katello/validators/no_trailing_space_validator.rb +1 -1
  109. data/app/lib/katello/validators/non_library_environment_validator.rb +1 -1
  110. data/app/lib/katello/validators/not_in_library_validator.rb +1 -1
  111. data/app/lib/katello/validators/path_descendents_validator.rb +1 -1
  112. data/app/lib/katello/validators/prior_validator.rb +1 -1
  113. data/app/lib/katello/validators/product_unique_attribute_validator.rb +1 -1
  114. data/app/lib/katello/validators/repo_disablement_validator.rb +2 -2
  115. data/app/lib/katello/validators/root_repository_unique_attribute_validator.rb +1 -1
  116. data/app/lib/katello/validators/self_reference_environment_validator.rb +1 -1
  117. data/app/lib/katello/validators/unique_field_in_org.rb +1 -1
  118. data/app/models/katello/activation_key.rb +6 -17
  119. data/app/models/katello/authorization/flatpak_remote.rb +33 -0
  120. data/app/models/katello/concerns/content_facet_host_extensions.rb +2 -1
  121. data/app/models/katello/concerns/host_managed_extensions.rb +8 -5
  122. data/app/models/katello/concerns/http_proxy_extensions.rb +4 -0
  123. data/app/models/katello/concerns/smart_proxy_extensions.rb +30 -6
  124. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +0 -8
  125. data/app/models/katello/content_view.rb +4 -2
  126. data/app/models/katello/content_view_erratum_filter.rb +18 -2
  127. data/app/models/katello/content_view_version.rb +6 -0
  128. data/app/models/katello/docker_manifest.rb +8 -0
  129. data/app/models/katello/docker_manifest_list.rb +8 -0
  130. data/app/models/katello/erratum.rb +8 -2
  131. data/app/models/katello/flatpak_remote.rb +16 -0
  132. data/app/models/katello/flatpak_remote_repository.rb +18 -0
  133. data/app/models/katello/flatpak_remote_repository_manifest.rb +4 -0
  134. data/app/models/katello/glue/candlepin/pool.rb +1 -1
  135. data/app/models/katello/glue/pulp/repos.rb +12 -1
  136. data/app/models/katello/host/content_facet.rb +42 -3
  137. data/app/models/katello/host/subscription_facet.rb +4 -12
  138. data/app/models/katello/repository.rb +21 -8
  139. data/app/models/katello/rhel_lifecycle_status.rb +6 -0
  140. data/app/models/katello/root_repository.rb +6 -8
  141. data/app/models/katello/upstream_pool.rb +1 -0
  142. data/app/overrides/add_organization_attributes.rb +6 -0
  143. data/app/services/katello/product_content_finder.rb +2 -1
  144. data/app/services/katello/pulp3/content_view_version/importable_repositories.rb +1 -1
  145. data/app/services/katello/pulp3/docker_manifest.rb +3 -2
  146. data/app/services/katello/pulp3/docker_manifest_list.rb +3 -2
  147. data/app/services/katello/pulp3/repository/ansible_collection.rb +8 -1
  148. data/app/services/katello/pulp3/repository/apt.rb +16 -18
  149. data/app/services/katello/pulp3/repository/file.rb +4 -2
  150. data/app/services/katello/pulp3/repository.rb +4 -0
  151. data/app/services/katello/pulp3/task.rb +2 -2
  152. data/app/views/foreman/job_templates/bootc_action.erb +26 -0
  153. data/app/views/foreman/job_templates/bootc_rollback.erb +13 -0
  154. data/app/views/foreman/job_templates/bootc_status.erb +13 -0
  155. data/app/views/foreman/job_templates/bootc_switch.erb +13 -0
  156. data/app/views/foreman/job_templates/bootc_upgrade.erb +13 -0
  157. data/app/views/foreman/job_templates/flatpak_install.erb +23 -0
  158. data/app/views/foreman/job_templates/flatpak_login_action.erb +30 -0
  159. data/app/views/foreman/job_templates/flatpak_setup.erb +27 -0
  160. data/app/views/foreman/job_templates/install_errata_by_search_query.erb +1 -1
  161. data/app/views/foreman/job_templates/install_errata_by_search_query_-_katello_ansible_default.erb +1 -1
  162. data/app/views/foreman/job_templates/resolve_traces_-_katello_ansible_default.erb +1 -1
  163. data/app/views/foreman/job_templates/update_packages_by_search_query_-_katello_ansible_default.erb +1 -1
  164. data/app/views/katello/api/v2/activation_keys/base.json.rabl +0 -4
  165. data/app/views/katello/api/v2/content_facet/base.json.rabl +2 -1
  166. data/app/views/katello/api/v2/content_view_filter_rules/show.json.rabl +1 -0
  167. data/app/views/katello/api/v2/content_view_versions/base.json.rabl +5 -1
  168. data/app/views/katello/api/v2/docker_manifest_lists/show.json.rabl +1 -1
  169. data/app/views/katello/api/v2/docker_manifests/show.json.rabl +1 -1
  170. data/app/views/katello/api/v2/flatpak_remote_repositories/base.json.rabl +4 -0
  171. data/app/views/katello/api/v2/flatpak_remote_repositories/index.json.rabl +7 -0
  172. data/app/views/katello/api/v2/flatpak_remote_repositories/show.json.rabl +13 -0
  173. data/app/views/katello/api/v2/flatpak_remotes/base.json.rabl +5 -0
  174. data/app/views/katello/api/v2/flatpak_remotes/index.json.rabl +8 -0
  175. data/app/views/katello/api/v2/flatpak_remotes/permissions.json.rabl +11 -0
  176. data/app/views/katello/api/v2/flatpak_remotes/show.json.rabl +3 -0
  177. data/app/views/katello/api/v2/hosts/base.json.rabl +0 -8
  178. data/app/views/katello/api/v2/hosts/os_attributes.json.rabl +13 -0
  179. data/app/views/katello/api/v2/http_proxies/show.json.rabl +1 -0
  180. data/app/views/katello/api/v2/repositories/base.json.rabl +1 -0
  181. data/app/views/katello/api/v2/repositories/show.json.rabl +1 -0
  182. data/app/views/katello/api/v2/subscription_facet/base.json.rabl +0 -4
  183. data/app/views/katello/api/v2/subscriptions/show.json.rabl +1 -1
  184. data/app/views/overrides/activation_keys/_host_synced_content_select.html.erb +10 -4
  185. data/app/views/overrides/http_proxies/_update_setting_input.html.erb +18 -0
  186. data/app/views/overrides/organizations/_step_1_override.html.erb +5 -0
  187. data/config/initializers/monkeys.rb +0 -1
  188. data/config/initializers/pagelets.rb +6 -0
  189. data/config/routes/api/registry.rb +1 -0
  190. data/config/routes/api/v2.rb +21 -0
  191. data/config/routes/overrides.rb +1 -0
  192. data/config/routes.rb +2 -0
  193. data/db/migrate/20190605014649_add_purpose_addons.rb +0 -12
  194. data/db/migrate/20200213184848_create_evr_type.rb +126 -1
  195. data/db/migrate/20200818192230_update_system_purpose_status.rb +0 -1
  196. data/db/migrate/20240207191223_remove_entitlement_mode_host_statuses.rb +0 -1
  197. data/db/migrate/20240924161240_katello_recreate_evr_constructs.rb +160 -0
  198. data/db/migrate/20241022121706_add_sync_dependencies_option.rb +5 -0
  199. data/db/migrate/20241101144625_remove_system_purpose_addons.rb +9 -0
  200. data/db/migrate/20241107002541_add_registry_url_to_katello_flatpak_remotes.rb +5 -0
  201. data/db/migrate/20241112145802_add_manifest_entity_to_content_facets.rb +7 -0
  202. data/db/migrate/20241120213713_add_allow_other_types_to_content_view_erratum_filter_rules.rb +6 -0
  203. data/db/migrate/20241206183052_add_content_type_to_container_manifests_and_lists.rb +9 -0
  204. data/db/seeds.d/75-job_templates.rb +5 -1
  205. data/engines/bastion/vendor/assets/javascripts/bastion/angular/angular.js +2 -2
  206. data/engines/bastion/vendor/assets/javascripts/bastion/angular-bootstrap/ui-bootstrap-tpls.js +3 -3
  207. data/engines/bastion/vendor/assets/javascripts/bastion/angular-bootstrap/ui-bootstrap.js +3 -3
  208. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-details-info.controller.js +0 -5
  209. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-details.controller.js +1 -41
  210. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-info.html +0 -12
  211. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/views/subscription-add-or-remove.html +1 -1
  212. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-system-purpose-modal.controller.js +1 -41
  213. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-traces-modal.controller.js +1 -1
  214. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-errata-modal.html +2 -2
  215. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-subscriptions-modal.html +2 -2
  216. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-system-purpose-modal.html +0 -13
  217. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html +1 -1
  218. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details-info.controller.js +0 -5
  219. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +1 -35
  220. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +2 -14
  221. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-provisioning-info.html +1 -1
  222. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +2 -2
  223. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/debs.controller.js +46 -22
  224. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/deb-content-views.controller.js +2 -1
  225. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/views/debs.html +4 -0
  226. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-content-views.html +1 -1
  227. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-details.html +1 -1
  228. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-errata.html +1 -1
  229. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata-tasks-list.html +2 -1
  230. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +85 -29
  231. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn.po +338 -93
  232. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn_IN.po +340 -95
  233. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ca.po +340 -95
  234. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/cs_CZ.po +341 -96
  235. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +31 -54
  236. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_AT.po +338 -93
  237. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_DE.po +338 -93
  238. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/el.po +341 -96
  239. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_GB.po +349 -104
  240. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_US.po +338 -93
  241. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +33 -56
  242. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/et_EE.po +338 -93
  243. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +80 -68
  244. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gl.po +340 -95
  245. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gu.po +340 -95
  246. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/he_IL.po +339 -111
  247. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/hi.po +340 -95
  248. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/id.po +379 -130
  249. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +342 -103
  250. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +70 -83
  251. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ka.po +84 -90
  252. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/kn.po +340 -95
  253. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +130 -138
  254. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ml_IN.po +338 -93
  255. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/mr.po +340 -95
  256. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/nl_NL.po +343 -97
  257. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/or.po +340 -95
  258. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pa.po +340 -95
  259. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl.po +340 -95
  260. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl_PL.po +338 -93
  261. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt.po +338 -93
  262. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +40 -63
  263. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro.po +338 -93
  264. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro_RO.po +338 -93
  265. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +343 -102
  266. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sl.po +338 -93
  267. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sv_SE.po +340 -95
  268. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta.po +338 -93
  269. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta_IN.po +340 -95
  270. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/te.po +340 -95
  271. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/tr.po +338 -93
  272. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi.po +338 -93
  273. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi_VN.po +338 -93
  274. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh.po +338 -93
  275. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +70 -83
  276. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +362 -105
  277. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +29 -29
  278. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package-info.html +1 -1
  279. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/products-bulk-advanced-sync-modal.controller.js +1 -1
  280. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/views/products-bulk-sync-plan-modal.html +2 -2
  281. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +24 -8
  282. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-tasks.html +2 -1
  283. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +2 -2
  284. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +21 -8
  285. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/os-versions.service.js +1 -0
  286. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-info.html +3 -3
  287. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-tasks.html +2 -1
  288. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-create.html +4 -2
  289. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html +2 -1
  290. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.controller.js +3 -3
  291. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/partials/product-table-sync-status.html +1 -1
  292. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscription-start-date.html +1 -1
  293. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-info.html +1 -1
  294. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/views/sync-plans.html +2 -2
  295. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/tasks-table.directive.js +2 -1
  296. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/task-details.html +2 -2
  297. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/tasks-index.html +1 -1
  298. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/tasks-table.html +1 -1
  299. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/user-tasks-table.html +1 -1
  300. data/lib/katello/engine.rb +6 -0
  301. data/lib/katello/permission_creator.rb +37 -0
  302. data/lib/katello/permissions/host_permissions.rb +2 -0
  303. data/lib/katello/permissions/registry_permissions.rb +1 -0
  304. data/lib/katello/plugin.rb +18 -1
  305. data/lib/katello/repository_types/docker.rb +0 -1
  306. data/lib/katello/repository_types/python.rb +1 -1
  307. data/lib/katello/version.rb +1 -1
  308. data/lib/katello.rb +2 -0
  309. data/locale/Makefile +20 -24
  310. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  311. data/locale/bn/katello.po +248 -263
  312. data/locale/bn_IN/LC_MESSAGES/katello.mo +0 -0
  313. data/locale/bn_IN/katello.po +247 -262
  314. data/locale/ca/LC_MESSAGES/katello.mo +0 -0
  315. data/locale/ca/katello.po +247 -262
  316. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  317. data/locale/cs/katello.po +524 -799
  318. data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
  319. data/locale/cs_CZ/katello.po +254 -269
  320. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  321. data/locale/de/katello.po +248 -263
  322. data/locale/de_AT/LC_MESSAGES/katello.mo +0 -0
  323. data/locale/de_AT/katello.po +247 -262
  324. data/locale/de_DE/LC_MESSAGES/katello.mo +0 -0
  325. data/locale/de_DE/katello.po +250 -265
  326. data/locale/el/LC_MESSAGES/katello.mo +0 -0
  327. data/locale/el/katello.po +252 -267
  328. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  329. data/locale/en/katello.po +257 -271
  330. data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
  331. data/locale/en_GB/katello.po +264 -279
  332. data/locale/en_US/LC_MESSAGES/katello.mo +0 -0
  333. data/locale/en_US/katello.po +247 -262
  334. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  335. data/locale/es/katello.po +248 -263
  336. data/locale/et_EE/LC_MESSAGES/katello.mo +0 -0
  337. data/locale/et_EE/katello.po +247 -262
  338. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  339. data/locale/fr/katello.po +250 -265
  340. data/locale/gl/LC_MESSAGES/katello.mo +0 -0
  341. data/locale/gl/katello.po +247 -262
  342. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  343. data/locale/gu/katello.po +250 -265
  344. data/locale/he_IL/LC_MESSAGES/katello.mo +0 -0
  345. data/locale/he_IL/katello.po +249 -264
  346. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  347. data/locale/hi/katello.po +248 -263
  348. data/locale/id/LC_MESSAGES/katello.mo +0 -0
  349. data/locale/id/katello.po +264 -275
  350. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  351. data/locale/it/katello.po +254 -270
  352. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  353. data/locale/ja/katello.po +250 -265
  354. data/locale/ka/LC_MESSAGES/katello.mo +0 -0
  355. data/locale/ka/katello.po +247 -262
  356. data/locale/katello.pot +1216 -1215
  357. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  358. data/locale/kn/katello.po +248 -263
  359. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  360. data/locale/ko/katello.po +248 -263
  361. data/locale/ml_IN/LC_MESSAGES/katello.mo +0 -0
  362. data/locale/ml_IN/katello.po +247 -262
  363. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  364. data/locale/mr/katello.po +248 -263
  365. data/locale/nl_NL/LC_MESSAGES/katello.mo +0 -0
  366. data/locale/nl_NL/katello.po +254 -268
  367. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  368. data/locale/or/katello.po +248 -263
  369. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  370. data/locale/pa/katello.po +248 -263
  371. data/locale/pl/LC_MESSAGES/katello.mo +0 -0
  372. data/locale/pl/katello.po +249 -264
  373. data/locale/pl_PL/LC_MESSAGES/katello.mo +0 -0
  374. data/locale/pl_PL/katello.po +247 -262
  375. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  376. data/locale/pt/katello.po +248 -263
  377. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  378. data/locale/pt_BR/katello.po +248 -263
  379. data/locale/ro/LC_MESSAGES/katello.mo +0 -0
  380. data/locale/ro/katello.po +247 -262
  381. data/locale/ro_RO/LC_MESSAGES/katello.mo +0 -0
  382. data/locale/ro_RO/katello.po +247 -262
  383. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  384. data/locale/ru/katello.po +255 -270
  385. data/locale/sl/LC_MESSAGES/katello.mo +0 -0
  386. data/locale/sl/katello.po +247 -262
  387. data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
  388. data/locale/sv_SE/katello.po +249 -264
  389. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  390. data/locale/ta/katello.po +248 -263
  391. data/locale/ta_IN/LC_MESSAGES/katello.mo +0 -0
  392. data/locale/ta_IN/katello.po +247 -262
  393. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  394. data/locale/te/katello.po +248 -263
  395. data/locale/tr/LC_MESSAGES/katello.mo +0 -0
  396. data/locale/tr/katello.po +247 -262
  397. data/locale/vi/LC_MESSAGES/katello.mo +0 -0
  398. data/locale/vi/katello.po +247 -262
  399. data/locale/vi_VN/LC_MESSAGES/katello.mo +0 -0
  400. data/locale/vi_VN/katello.po +247 -262
  401. data/locale/zh/LC_MESSAGES/katello.mo +0 -0
  402. data/locale/zh/katello.po +247 -262
  403. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  404. data/locale/zh_CN/katello.po +250 -265
  405. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  406. data/locale/zh_TW/katello.po +257 -272
  407. data/webpack/ForemanColumnExtensions/index.js +73 -3
  408. data/webpack/ForemanColumnExtensions/index.scss +9 -0
  409. data/webpack/__mocks__/foremanReact/Root/Context/ForemanContext.js +1 -0
  410. data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.js +1 -1
  411. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeCard.js +1 -20
  412. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeEditModal.js +3 -61
  413. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeCard.test.js +0 -5
  414. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeEditModal.test.js +0 -5
  415. data/webpack/components/extensions/HostDetails/DetailsTabCards/ImageModeCard.js +87 -0
  416. data/webpack/components/extensions/HostDetails/DetailsTabCards/RegistrationCard.js +28 -2
  417. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebInstallModal.js +1 -1
  418. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +2 -2
  419. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.js +1 -1
  420. data/webpack/components/extensions/Hosts/FontAwesomeImageModeIcon.js +55 -0
  421. data/webpack/containers/Application/config.js +5 -0
  422. data/webpack/global_index.js +3 -1
  423. data/webpack/redux/actions/RedHatRepositories/helpers.js +9 -0
  424. data/webpack/scenes/BootedContainerImages/BootedContainerImagesConstants.js +5 -0
  425. data/webpack/scenes/BootedContainerImages/BootedContainerImagesPage.js +242 -0
  426. data/webpack/scenes/BootedContainerImages/__tests__/bootedContainerImages.fixtures.js +42 -0
  427. data/webpack/scenes/BootedContainerImages/__tests__/bootedContainerImagesPage.test.js +233 -0
  428. data/webpack/scenes/BootedContainerImages/index.js +4 -0
  429. data/webpack/scenes/ContentViews/Delete/__tests__/affectedHosts.fixtures.json +1 -2
  430. data/webpack/scenes/ContentViews/Details/Filters/CVErrataDateFilterContent.js +39 -7
  431. data/webpack/scenes/ContentViews/Details/Filters/CVErrataIDFilterContent.js +13 -2
  432. data/webpack/scenes/ContentViews/Details/Filters/CVFilterDetailType.js +1 -1
  433. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataDateFilterContent.test.js +1 -0
  434. data/webpack/scenes/ContentViews/Details/Repositories/RepoIcon.js +4 -2
  435. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/hosts.fixtures.json +1 -2
  436. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVReassignActivationKeysForm.js +20 -1
  437. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVReassignHostsForm.js +20 -1
  438. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionRemoveReview.js +128 -18
  439. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvAffectedActivationKeys.fixture.json +0 -1
  440. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvAffectedHosts.fixture.json +1 -2
  441. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvVersionRemove.test.js +6 -4
  442. data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedActivationKeys.js +5 -1
  443. data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedHosts.js +6 -1
  444. data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +1 -1
  445. data/webpack/scenes/ContentViews/expansions/DetailsExpansion.js +5 -1
  446. data/webpack/scenes/SmartProxy/ExpandableCvDetails.js +4 -2
  447. data/webpack/scenes/SmartProxy/__tests__/SmartProxyContentTest.js +38 -0
  448. data/webpack/scenes/Subscriptions/Details/SubscriptionPurposeAttributes.js +0 -1
  449. data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetailInfo.test.js.snap +0 -10
  450. data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetails.test.js.snap +0 -3
  451. data/webpack/scenes/Subscriptions/Details/__tests__/subscriptionDetails.fixtures.js +0 -1
  452. metadata +61 -58
  453. data/app/models/katello/activation_key_purpose_addon.rb +0 -6
  454. data/app/models/katello/purpose_addon.rb +0 -11
  455. data/app/models/katello/subscription_facet_purpose_addon.rb +0 -6
  456. data/lib/monkeys/fx_sqlite_skip.rb +0 -13
  457. data/locale/action_names.rb +0 -181
  458. data/locale/bn/katello.po.time_stamp +0 -0
  459. data/locale/bn_IN/katello.po.time_stamp +0 -0
  460. data/locale/ca/katello.po.time_stamp +0 -0
  461. data/locale/cs/katello.po.time_stamp +0 -0
  462. data/locale/cs_CZ/katello.po.time_stamp +0 -0
  463. data/locale/de/katello.po.time_stamp +0 -0
  464. data/locale/de_AT/katello.po.time_stamp +0 -0
  465. data/locale/de_DE/katello.po.time_stamp +0 -0
  466. data/locale/el/katello.po.time_stamp +0 -0
  467. data/locale/en/katello.po.time_stamp +0 -0
  468. data/locale/en_GB/katello.po.time_stamp +0 -0
  469. data/locale/en_US/katello.po.time_stamp +0 -0
  470. data/locale/es/katello.po.time_stamp +0 -0
  471. data/locale/et_EE/katello.po.time_stamp +0 -0
  472. data/locale/fr/katello.po.time_stamp +0 -0
  473. data/locale/gl/katello.po.time_stamp +0 -0
  474. data/locale/gu/katello.po.time_stamp +0 -0
  475. data/locale/he_IL/katello.po.time_stamp +0 -0
  476. data/locale/hi/katello.po.time_stamp +0 -0
  477. data/locale/id/katello.po.time_stamp +0 -0
  478. data/locale/it/katello.po.time_stamp +0 -0
  479. data/locale/ja/katello.po.time_stamp +0 -0
  480. data/locale/ka/katello.po.time_stamp +0 -0
  481. data/locale/kn/katello.po.time_stamp +0 -0
  482. data/locale/ko/katello.po.time_stamp +0 -0
  483. data/locale/ml_IN/katello.po.time_stamp +0 -0
  484. data/locale/mr/katello.po.time_stamp +0 -0
  485. data/locale/nl_NL/katello.po.time_stamp +0 -0
  486. data/locale/or/katello.po.time_stamp +0 -0
  487. data/locale/pa/katello.po.time_stamp +0 -0
  488. data/locale/pl/katello.po.time_stamp +0 -0
  489. data/locale/pl_PL/katello.po.time_stamp +0 -0
  490. data/locale/pt/katello.po.time_stamp +0 -0
  491. data/locale/pt_BR/katello.po.time_stamp +0 -0
  492. data/locale/ro/katello.po.time_stamp +0 -0
  493. data/locale/ro_RO/katello.po.time_stamp +0 -0
  494. data/locale/ru/katello.po.time_stamp +0 -0
  495. data/locale/sl/katello.po.time_stamp +0 -0
  496. data/locale/sv_SE/katello.po.time_stamp +0 -0
  497. data/locale/ta/katello.po.time_stamp +0 -0
  498. data/locale/ta_IN/katello.po.time_stamp +0 -0
  499. data/locale/te/katello.po.time_stamp +0 -0
  500. data/locale/tr/katello.po.time_stamp +0 -0
  501. data/locale/vi/katello.po.time_stamp +0 -0
  502. data/locale/vi_VN/katello.po.time_stamp +0 -0
  503. data/locale/zh/katello.po.time_stamp +0 -0
  504. data/locale/zh_CN/katello.po.time_stamp +0 -0
  505. data/locale/zh_TW/katello.po.time_stamp +0 -0
@@ -88,7 +88,7 @@
88
88
  <dd>{{ package.buildhost }}</dd>
89
89
 
90
90
  <dt translate>Build Time</dt>
91
- <dd><long-date-time date="package.build_time_utc" /></dd>
91
+ <dd><long-date-time date="package.build_time_utc"></long-date-time></dd>
92
92
  </dl>
93
93
  </div>
94
94
  </div>
@@ -25,7 +25,7 @@ angular.module('Bastion.products').controller('ProductsBulkAdvancedSyncModalCont
25
25
  Notification.setSuccessMessage(message, {
26
26
  link: {
27
27
  children: translate("Click to view task"),
28
- href: translate("/foreman_tasks/tasks/%taskId").replace('%taskId', task.id)
28
+ href: "/foreman_tasks/tasks/%taskId".replace('%taskId', task.id)
29
29
  }});
30
30
  };
31
31
 
@@ -68,10 +68,10 @@
68
68
  <tr bst-table-row ng-repeat="syncPlan in table.rows" class="clickable-row"
69
69
  ng-click="selectSyncPlan(syncPlan)" ng-class="{'selected-row': syncPlan === selectedSyncPlan }">
70
70
  <td bst-table-cell>{{ syncPlan.name }}</td>
71
- <td bst-table-cell><long-date-time date="syncPlan.sync_date" /></td>
71
+ <td bst-table-cell><long-date-time date="syncPlan.sync_date"></long-date-time></td>
72
72
  <td bst-table-cell>{{ syncPlan.enabled }}</td>
73
73
  <td bst-table-cell>{{ syncPlan.interval | translate | capitalize }}</td>
74
- <td bst-table-cell><long-date-time date="syncPlan.next_sync" /></td>
74
+ <td bst-table-cell><long-date-time date="syncPlan.next_sync"></long-date-time></td>
75
75
  </tr>
76
76
  </tbody>
77
77
  </table>
@@ -54,7 +54,7 @@
54
54
  </dd>
55
55
 
56
56
  <dt ng-if="product.redhat != true" translate>Metadata Expiration (Seconds)</dt>
57
- <dd bst-edit-number="repository.metadata_expire" on-save="save(repository)"
57
+ <dd bst-edit-number="repository.metadata_expire" on-save="save(repository)"
58
58
  readonly="product.redhat || denied('edit_products', product) || !repository.allow_updates || repository.is_container_push"
59
59
  deletable="repository.metadata_expire !== null"
60
60
  on-delete="clearMetadataExpire()"
@@ -77,7 +77,7 @@
77
77
  </dd>
78
78
 
79
79
  <span ng-show="repository.generic_remote_options !== []">
80
- <span ng-repeat="option in genericRemoteOptions">
80
+ <span ng-repeat="option in genericRemoteOptions">
81
81
  <dt>{{option.title}}</dt>
82
82
  <dd bst-edit-text="genericRemoteOptions[$index].value"
83
83
  on-save="save(repository)"
@@ -144,6 +144,13 @@
144
144
  edit-trigger="uploadedFile">
145
145
  </dd>
146
146
 
147
+ <dt translate>Sync Dependencies</dt>
148
+ <dd bst-edit-checkbox="repository.sync_dependencies"
149
+ formatter="booleanToYesNo"
150
+ on-save="save(repository)"
151
+ readonly="denied('edit_products', product) || !repository.allow_updates || repository.is_container_push">
152
+ </dd>
153
+
147
154
  <dt translate>Ansible Collection Authorization</dt>
148
155
  <dd bst-edit-custom="repository.ansible_collection_auth_exists"
149
156
  readonly="denied('edit_products', product) || !repository.allow_updates || repository.is_container_push"
@@ -312,6 +319,12 @@
312
319
  on-save="save(repository)">
313
320
  </dd>
314
321
  </span>
322
+ <span ng-if="((repository.content_type === 'yum' && !product.redhat) || repository.content_type === 'deb') && repository.full_gpg_key_path ">
323
+ <dt translate>URL to GPG Key</dt>
324
+ <dd>
325
+ <a ng-href="{{ repository.full_gpg_key_path }}">{{ repository.full_gpg_key_path }}</a>
326
+ </dd>
327
+ </span>
315
328
  <dt translate>SSL CA Cert</dt>
316
329
  <dd bst-edit-select="repository.ssl_ca_cert.name"
317
330
  readonly="product.redhat ||denied('edit_products', product) || !repository.allow_updates || repository.is_container_push"
@@ -333,7 +346,7 @@
333
346
  options="certs()"
334
347
  on-save="save(repository)">
335
348
  </dd>
336
- <span ng-if="repository.content_type == 'yum' || repository.content_type == 'deb' || repository.content_type == 'docker'">
349
+ <span ng-if="repository.content_type === 'deb' || repository.content_type === 'docker' || repository.content_type === 'file' || repository.content_type === 'yum'">
337
350
  <dt translate>Download Policy</dt>
338
351
  <dd bst-edit-select="downloadPolicyDisplay(repository.download_policy)"
339
352
  readonly="denied('edit_products', product) || !repository.allow_updates || repository.is_container_push"
@@ -383,17 +396,20 @@
383
396
  <span ng-include="'products/details/partials/sync-status.html'"></span>
384
397
 
385
398
  <dt translate>Last Sync</dt>
386
- <dd ng-show="repository.last_sync == null" translate>
399
+ <dd ng-show="repository.last_sync == null && repository.last_sync_words == null" translate>
387
400
  Not Synced
388
401
  </dd>
402
+ <dd ng-show="repository.last_sync == null && repository.last_sync_words" translate>
403
+ Completed {{ repository.last_sync_words }} ago
404
+ </dd>
389
405
  <dd ng-hide="repository.last_sync == null || repository.last_sync.ended_at == null">
390
- <relative-date date="repository.last_sync.ended_at" />
391
- (<short-date-time date="repository.last_sync.ended_at" /> <translate>Local Time</translate>)
406
+ <relative-date date="repository.last_sync.ended_at" ></relative-date>
407
+ (<short-date-time date="repository.last_sync.ended_at" ></short-date-time> <translate>Local Time</translate>)
392
408
  </dd>
393
409
 
394
410
  <dt translate>Next Sync</dt>
395
411
  <dd ng-show="repository.product.sync_plan.next_sync">
396
- <long-date-time date="repository.product.sync_plan.next_sync" /> (<translate>Server Time</translate>)
412
+ <long-date-time date="repository.product.sync_plan.next_sync" ></long-date-time> (<translate>Server Time</translate>)
397
413
  </dd>
398
414
  <dd ng-hide="repository.product.sync_plan.next_sync" translate>
399
415
  Synced manually, no interval set.
@@ -524,7 +540,7 @@
524
540
  </tbody>
525
541
  </table>
526
542
 
527
- <div class="divider" ng-if="repository.content_type === 'ostree'"/>
543
+ <div class="divider" ng-if="repository.content_type === 'ostree'"></div>
528
544
  </section>
529
545
 
530
546
  <span ng-hide="(repository.content_type === 'deb' && repository.url)">
@@ -1,4 +1,5 @@
1
1
  <div tasks-table details-state="product.repository.tasks.details"
2
2
  known-context="repository,organization"
3
3
  resource-type="Katello::Repository"
4
- resource-id="{{ repository.id }}"/>
4
+ resource-id="{{ repository.id }}">
5
+ </div>
@@ -132,7 +132,7 @@ angular.module('Bastion.repositories').controller('NewRepositoryController',
132
132
  });
133
133
 
134
134
  $scope.save = function (repository) {
135
- var fields = ['upstream_password', 'upstream_username', 'ansible_collection_auth_token', 'ansible_collection_auth_url', 'ansible_collection_requirements'];
135
+ var fields = ['upstream_password', 'upstream_username', 'ansible_collection_auth_token', 'ansible_collection_auth_url', 'ansible_collection_requirements', 'sync_repositories'];
136
136
  if (repository.content_type === 'yum') {
137
137
  repository.os_versions = $scope.osVersionsParam();
138
138
  repository.ignorable_content = [];
@@ -143,7 +143,7 @@ angular.module('Bastion.repositories').controller('NewRepositoryController',
143
143
  repository.ignorable_content.push("treeinfo");
144
144
  }
145
145
  }
146
- if (repository.content_type !== 'yum' && repository.content_type !== 'deb' && repository.content_type !== 'docker') {
146
+ if (repository.content_type !== 'deb' && repository.content_type !== 'docker' && repository.content_type !== 'file' && repository.content_type !== 'yum') {
147
147
  repository['download_policy'] = '';
148
148
  }
149
149
  if (repository.arch === 'No restriction') {
@@ -26,8 +26,8 @@
26
26
  <div bst-form-group label="{{ 'Description' | translate }}">
27
27
  <textarea id="description"
28
28
  name="description"
29
- ng-model="repository.description"
30
- type="text"/>
29
+ ng-model="repository.description">
30
+ </textarea>
31
31
  </div>
32
32
 
33
33
  <div bst-form-group label="{{ 'Type' | translate }}">
@@ -107,8 +107,8 @@
107
107
  name="ansible_collection_requirements"
108
108
  ng-model="repository.ansible_collection_requirements"
109
109
  rows="10"
110
- placeholder= "{{ 'You can upload a requirements.yml file below to auto-fill contents or paste contents of requirement.yml here' | translate }}"
111
- type="text"/>
110
+ placeholder= "{{ 'You can upload a requirements.yml file below to auto-fill contents or paste contents of requirement.yml here' | translate }}">
111
+ </textarea>
112
112
  </div>
113
113
 
114
114
  <div class="form-group" ng-show="repository.content_type === 'ansible_collection'">
@@ -118,6 +118,19 @@
118
118
  </a></p>
119
119
  </div>
120
120
 
121
+ <div ng-show="repository.content_type === 'ansible_collection'">
122
+ <div class="checkbox">
123
+ <label>
124
+ <input id="sync_dependencies" name="sync_dependencies" ng-model="repository.sync_dependencies" ng-init="repository.sync_dependencies=true" type="checkbox"/>
125
+ <span translate>Sync Dependencies</span>
126
+ </label>
127
+
128
+ <p class="help-block" translate>
129
+ Include dependencies of Ansible collections in the repository.
130
+ </p>
131
+ </div>
132
+ </div>
133
+
121
134
  <div ng-show="repository.content_type === 'ansible_collection'" bst-form-group label="{{ 'Auth URL' | translate }}">
122
135
  <input id="ansible_collection_auth_url"
123
136
  name="ansible_collection_auth_url"
@@ -152,7 +165,7 @@
152
165
  <br />
153
166
  <div class="alert alert-danger" ><strong>Warning. </strong>Are you sure you want to add a comma in this whitespace separated list of distributions?</div>
154
167
  </div>
155
-
168
+
156
169
  </div>
157
170
 
158
171
  <div ng-show="repository.content_type === 'deb'" bst-form-group label="{{ 'Components' | translate }}">
@@ -277,8 +290,8 @@
277
290
  <textarea
278
291
  id="option-{{$index}}"
279
292
  name="option-{{$index}}"
280
- ng-model="genericRemoteOptions[$index].value"
281
- type="text"/>
293
+ ng-model="genericRemoteOptions[$index].value">
294
+ </textarea>
282
295
  <p class="help-block" translate>
283
296
  {{option.description}}
284
297
  </p>
@@ -296,7 +309,7 @@
296
309
  </div>
297
310
  </div>
298
311
 
299
- <div bst-form-group label="{{ 'Download Policy' | translate }}" ng-if="repository.content_type === 'yum' || repository.content_type === 'deb' || repository.content_type === 'docker'">
312
+ <div bst-form-group label="{{ 'Download Policy' | translate }}" ng-if="repository.content_type === 'deb' || repository.content_type === 'docker' || repository.content_type === 'file' || repository.content_type === 'yum'">
300
313
  <select id="download_policy"
301
314
  name="download_policy"
302
315
  ng-model="repository.download_policy"
@@ -14,6 +14,7 @@ angular
14
14
  this.getOSVersionsOptions = function () {
15
15
  return [
16
16
  { name: 'No restriction', id: '' },
17
+ { name: 'Red Hat Enterprise Linux 10 ', id: 'rhel-10' },
17
18
  { name: 'Red Hat Enterprise Linux 9 ', id: 'rhel-9' },
18
19
  { name: 'Red Hat Enterprise Linux 8 ', id: 'rhel-8' },
19
20
  { name: 'Red Hat Enterprise Linux 7 ', id: 'rhel-7' },
@@ -88,13 +88,13 @@
88
88
 
89
89
  <dt translate>Last Sync</dt>
90
90
  <dd>
91
- <relative-date date="product.last_sync" />
92
- (<long-date-time date="product.last_sync" /> <translate>Local Time</translate>)
91
+ <relative-date date="product.last_sync" ></relative-date>
92
+ (<long-date-time date="product.last_sync" ></long-date-time> <translate>Local Time</translate>)
93
93
  </dd>
94
94
 
95
95
  <dt translate>Next Sync</dt>
96
96
  <dd ng-show="product.sync_plan.next_sync">
97
- <long-date-time date="product.sync_plan.next_sync" /> (<translate>Server Time</translate>)
97
+ <long-date-time date="product.sync_plan.next_sync" ></long-date-time> (<translate>Server Time</translate>)
98
98
  </dd>
99
99
  <dd ng-hide="product.sync_plan.next_sync" translate>
100
100
  Synced manually, no interval set.
@@ -1,4 +1,5 @@
1
1
  <div tasks-table details-state="product.tasks.details"
2
2
  known-context="product,organization"
3
3
  resource-type="Katello::Product"
4
- resource-id="{{ product.id }}"/>
4
+ resource-id="{{ product.id }}">
5
+ </div>
@@ -16,7 +16,8 @@
16
16
  <select class="form-control" ng-disabled="creating()"
17
17
  ng-model="createRepoChoices.existingProductId"
18
18
  ng-options="product.id as product.name for product in products"
19
- ng-required="createRepoChoices.newProduct === 'false'"/>
19
+ ng-required="createRepoChoices.newProduct === 'false'">
20
+ </select>
20
21
  </div>
21
22
 
22
23
  <div bst-form-group ng-show="createRepoChoices.newProduct === 'true'"
@@ -45,7 +46,8 @@
45
46
  <div bst-form-group ng-show="createRepoChoices.newProduct === 'true' && contentCredentials.length !== 0"
46
47
  label="{{ 'GPG Key' | translate }}">
47
48
  <select class="form-control" ng-model="createRepoChoices.product.gpg_key_id"
48
- ng-options="content_credential.id as content_credential.name for content_credential in contentCredentials"/>
49
+ ng-options="content_credential.id as content_credential.name for content_credential in contentCredentials">
50
+ </select>
49
51
  </div>
50
52
 
51
53
  <h4 translate>Repository Options</h4>
@@ -4,7 +4,8 @@
4
4
  <form ng-submit="discover()" name="discoveryForm" class="col-sm-5" role="form">
5
5
  <div bst-form-group label="{{ 'Repository Type' | translate }}">
6
6
  <select ng-model="discovery.contentType"
7
- ng-options="contentType.id as contentType.name for contentType in contentTypes"/>
7
+ ng-options="contentType.id as contentType.name for contentType in contentTypes">
8
+ </select>
8
9
  </div>
9
10
 
10
11
  <div bst-form-group ng-if="discovery.contentType === 'yum'"
@@ -68,7 +68,7 @@ angular.module('Bastion.products').controller('ProductsController',
68
68
  Notification.setSuccessMessage(message, {
69
69
  link: {
70
70
  children: translate("Click to view task"),
71
- href: translate("/foreman_tasks/tasks/%taskId").replace('%taskId', taskId)
71
+ href: "/foreman_tasks/tasks/%taskId".replace('%taskId', taskId)
72
72
  }});
73
73
  });
74
74
 
@@ -98,7 +98,7 @@ angular.module('Bastion.products').controller('ProductsController',
98
98
  Notification.setSuccessMessage(message, {
99
99
  link: {
100
100
  children: translate("Click to monitor task progress."),
101
- href: translate("/foreman_tasks/tasks/%taskId").replace('%taskId', task.id)
101
+ href: "/foreman_tasks/tasks/%taskId".replace('%taskId', task.id)
102
102
  }});
103
103
  };
104
104
 
@@ -113,7 +113,7 @@ angular.module('Bastion.products').controller('ProductsController',
113
113
  Notification.setSuccessMessage(message, {
114
114
  link: {
115
115
  children: translate("Click to monitor task progress."),
116
- href: translate("/foreman_tasks/tasks/%taskId").replace('%taskId', task.id)
116
+ href: "/foreman_tasks/tasks/%taskId".replace('%taskId', task.id)
117
117
  }});
118
118
  };
119
119
 
@@ -1,7 +1,7 @@
1
1
  <div class="list-unstyled" ng-show="product.last_sync">
2
2
  <div>
3
3
  <span translate>Last synced </span>
4
- <relative-date date="product.last_sync" />.
4
+ <relative-date date="product.last_sync" ></relative-date>.
5
5
  </div>
6
6
  <div ng-show="mostImportantSyncState(product) == 'pending'"
7
7
  translate
@@ -1,2 +1,2 @@
1
1
 
2
- <date date="subscription.start_date" />{{ checkFutureDate(subscription.start_date) }}
2
+ <date date="subscription.start_date" ></date>{{ checkFutureDate(subscription.start_date) }}
@@ -42,7 +42,7 @@
42
42
  </dd>
43
43
 
44
44
  <dt translate>Next Sync</dt>
45
- <dd><long-date-time date="syncPlan.next_sync" /></dd>
45
+ <dd><long-date-time date="syncPlan.next_sync"></long-date-time></dd>
46
46
 
47
47
  <dt translate>Recurring Logic</dt>
48
48
  <dd>
@@ -43,10 +43,10 @@
43
43
  </a>
44
44
  </td>
45
45
  <td bst-table-cell>{{ syncPlan.description }}</td>
46
- <td bst-table-cell><long-date-time date="syncPlan.sync_date" /></td>
46
+ <td bst-table-cell><long-date-time date="syncPlan.sync_date"></long-date-time></td>
47
47
  <td bst-table-cell>{{ syncPlan.enabled }}</td>
48
48
  <td bst-table-cell>{{ syncPlan.interval | translate | capitalize }}</td>
49
- <td bst-table-cell><long-date-time date="syncPlan.next_sync" /></td>
49
+ <td bst-table-cell><long-date-time date="syncPlan.next_sync"></long-date-time></td>
50
50
  </tr>
51
51
  </tbody>
52
52
  </table>
@@ -26,7 +26,8 @@
26
26
  <div tasks-table details-state="product.tasks.details"
27
27
  known-context="product,organization"
28
28
  resource-type="Katello::Product"
29
- resource-id="{{ product.id }}"/>
29
+ resource-id="{{ product.id }}">
30
+ </dev>
30
31
  </pre>
31
32
  */
32
33
  angular.module('Bastion.tasks').directive('tasksTable',
@@ -8,10 +8,10 @@
8
8
  <dd>{{ task.username }}</dd>
9
9
 
10
10
  <dt translate>Started At</dt>
11
- <dd><short-date-time date="task.started_at" /></dd>
11
+ <dd><short-date-time date="task.started_at"></short-date-time></dd>
12
12
 
13
13
  <dt translate>Finished At</dt>
14
- <dd><short-date-time date="task.ended_at" /></dd>
14
+ <dd><short-date-time date="task.ended_at"></short-date-time></dd>
15
15
 
16
16
  <dt translate>Parameters</dt>
17
17
  <dd ng-switch="isArray(task.humanized.input)">
@@ -1 +1 @@
1
- <div tasks-table details-state="tasks.details" all/>
1
+ <div tasks-table details-state="tasks.details" all></div>
@@ -32,7 +32,7 @@
32
32
  </a>
33
33
  </td>
34
34
  <td bst-table-cell>{{ task.username }}</td>
35
- <td bst-table-cell><short-date-time date="task.started_at" /></td>
35
+ <td bst-table-cell><short-date-time date="task.started_at"></short-date-time></td>
36
36
  </tr>
37
37
  </tbody>
38
38
  </table>
@@ -22,7 +22,7 @@
22
22
  {{ task.humanized.input | taskInputShort | taskInputCompile }}
23
23
  </a>
24
24
  </td>
25
- <td bst-table-cell><short-date-time date="task.started_at" /></td>
25
+ <td bst-table-cell><short-date-time date="task.started_at"></short-date-time></td>
26
26
  </tr>
27
27
  </tbody>
28
28
  </table>
@@ -156,9 +156,13 @@ module Katello
156
156
  ::HttpProxy.include Katello::Concerns::HttpProxyExtensions
157
157
  ForemanTasks::RecurringLogic.include Katello::Concerns::RecurringLogicExtensions
158
158
 
159
+ # Validator extensions
160
+ ::BookmarkControllerValidator.singleton_class.send :prepend, Katello::Concerns::BookmarkControllerValidatorExtensions
161
+
159
162
  #Controller extensions
160
163
  ::HostsController.include Katello::Concerns::HostsControllerExtensions
161
164
  ::SmartProxiesController.include Katello::Concerns::SmartProxiesControllerExtensions
165
+ ::HttpProxiesController.include Katello::Concerns::HttpProxiesControllerExtensions
162
166
  ::RegistrationCommandsController.prepend Katello::Concerns::RegistrationCommandsControllerExtensions
163
167
 
164
168
  #Helper Extensions
@@ -198,6 +202,8 @@ module Katello
198
202
  ::Api::V2::HostsBulkActionsController.include Katello::Concerns::Api::V2::HostsBulkActionsControllerExtensions
199
203
  ::Api::V2::HostgroupsController.include Katello::Concerns::Api::V2::HostgroupsControllerExtensions
200
204
  ::Api::V2::SmartProxiesController.include Katello::Concerns::Api::V2::SmartProxiesControllerExtensions
205
+ ::Api::V2::HttpProxiesController.include Katello::Concerns::HttpProxiesControllerExtensions
206
+ ::Api::V2::HttpProxiesController.include Katello::Concerns::Api::V2::HttpProxiesControllerExtensions
201
207
  ::Api::V2::RegistrationController.include ::Foreman::Controller::SmartProxyAuth
202
208
  ::Api::V2::RegistrationController.prepend Katello::Concerns::Api::V2::RegistrationControllerExtensions
203
209
  ::Api::V2::RegistrationCommandsController.include Katello::Concerns::Api::V2::RegistrationCommandsControllerExtensions
@@ -16,6 +16,7 @@ module Katello
16
16
  subscription_permissions
17
17
  sync_plan_permissions
18
18
  alternate_content_source_permissions
19
+ flatpak_remote_permissions
19
20
  user_permissions
20
21
  end
21
22
 
@@ -305,6 +306,7 @@ module Katello
305
306
  'katello/api/v2/content_uploads' => [:create, :update, :destroy],
306
307
  'katello/api/v2/organizations' => [:repo_discover, :cancel_repo_discover],
307
308
  'katello/api/v2/repository_sets' => [:enable, :disable],
309
+ 'katello/api/v2/flatpak_remote_repositories' => [:mirror],
308
310
  },
309
311
  :resource_type => 'Katello::Product',
310
312
  :finder_scope => :editable
@@ -449,5 +451,40 @@ module Katello
449
451
  },
450
452
  :resource_type => 'Organization'
451
453
  end
454
+
455
+ def flatpak_remote_permissions
456
+ @plugin.permission :view_flatpak_remotes,
457
+ {
458
+ 'katello/api/v2/flatpak_remotes' => [:index, :show, :auto_complete_search],
459
+ 'katello/api/v2/flatpak_remote_repositories' => [:index, :show, :auto_complete_search],
460
+ 'katello/api/v2/flatpak_remote_repository_manifests' => [:index, :show, :auto_complete_search],
461
+ },
462
+ :resource_type => 'Katello::FlatpakRemote',
463
+ :finder_scope => :readable
464
+ @plugin.permission :create_flatpak_remotes,
465
+ {
466
+ 'katello/api/v2/flatpak_remotes' => [:create],
467
+ 'katello/api/v2/flatpak_remote_repositories' => [:create],
468
+ 'katello/api/v2/flatpak_remote_repository_manifests' => [:create],
469
+ },
470
+ :resource_type => 'Katello::FlatpakRemote',
471
+ :finder_scope => :creatable
472
+ @plugin.permission :edit_flatpak_remotes,
473
+ {
474
+ 'katello/api/v2/flatpak_remotes' => [:update, :scan],
475
+ 'katello/api/v2/flatpak_remote_repositories' => [:update],
476
+ 'katello/api/v2/flatpak_remote_repository_manifests' => [:update],
477
+ },
478
+ :resource_type => 'Katello::FlatpakRemote',
479
+ :finder_scope => :editable
480
+ @plugin.permission :destroy_flatpak_remotes,
481
+ {
482
+ 'katello/api/v2/flatpak_remotes' => [:destroy],
483
+ 'katello/api/v2/flatpak_remote_repositories' => [:destroy],
484
+ 'katello/api/v2/flatpak_remote_repository_manifests' => [:destroy],
485
+ },
486
+ :resource_type => 'Katello::FlatpakRemote',
487
+ :finder_scope => :deletable
488
+ end
452
489
  end
453
490
  end
@@ -43,6 +43,8 @@ Foreman::AccessControl.permission(:edit_hosts).actions.concat [
43
43
 
44
44
  Foreman::AccessControl.permission(:view_hosts).actions.concat [
45
45
  'hosts/content_hosts',
46
+ 'katello/api/v2/host_bootc_images/bootc_images',
47
+ 'katello/api/v2/host_bootc_images/auto_complete_search',
46
48
  'katello/api/v2/host_autocomplete/auto_complete_search',
47
49
  'katello/api/v2/host_errata/index',
48
50
  'katello/api/v2/host_errata/show',
@@ -14,4 +14,5 @@ Foreman::AccessControl.permission(:create_personal_access_tokens).actions.concat
14
14
  'katello/api/registry/registry_proxies/start_upload_blob',
15
15
  'katello/api/registry/registry_proxies/upload_blob',
16
16
  'katello/api/registry/registry_proxies/finish_upload_blob',
17
+ 'katello/api/registry/registry_proxies/static_index',
17
18
  ]
@@ -70,6 +70,15 @@ Foreman::Plugin.register :katello do
70
70
  :engine => Katello::Engine,
71
71
  :turbolinks => false
72
72
 
73
+ menu :top_menu,
74
+ :booted_container_images,
75
+ :caption => N_('Booted Container Images'),
76
+ :url_hash => {:controller => 'katello/api/v2/host_bootc_images',
77
+ :action => 'bootc_images'},
78
+ :url => '/booted_container_images',
79
+ :engine => Katello::Engine,
80
+ :turbolinks => false
81
+
73
82
  divider :top_menu, :caption => N_('Lifecycle'), :parent => :content_menu
74
83
 
75
84
  menu :top_menu,
@@ -226,7 +235,7 @@ Foreman::Plugin.register :katello do
226
235
  :content_facet_attributes => [:content_view_id, :lifecycle_environment_id, :content_source_id,
227
236
  :host, :kickstart_repository_id],
228
237
  :subscription_facet_attributes => [:release_version, :autoheal, :purpose_usage, :purpose_role, :service_level, :host,
229
- {:installed_products => [:product_id, :product_name, :arch, :version]}, :facts, {:hypervisor_guest_uuids => []}, {:purpose_addon_ids => []}]
238
+ {:installed_products => [:product_id, :product_name, :arch, :version]}, :facts, {:hypervisor_guest_uuids => []}]
230
239
  parameter_filter ::Hostgroup, :content_view_id, :lifecycle_environment_id, :content_source_id,
231
240
  :kickstart_repository_id
232
241
  parameter_filter Organization, :label, :service_level
@@ -298,6 +307,9 @@ Foreman::Plugin.register :katello do
298
307
  extend_rabl_template 'api/v2/smart_proxies/main', 'katello/api/v2/smart_proxies/pulp_info'
299
308
  extend_rabl_template 'api/v2/hosts/show', 'katello/api/v2/hosts/host_collections'
300
309
  extend_rabl_template 'api/v2/hosts/show', 'katello/api/v2/hosts/show'
310
+ extend_rabl_template 'api/v2/hosts/show', 'katello/api/v2/hosts/os_attributes'
311
+ extend_rabl_template 'api/v2/hosts/index', 'katello/api/v2/hosts/os_attributes'
312
+ extend_rabl_template 'api/v2/http_proxies/show', 'katello/api/v2/http_proxies/show'
301
313
 
302
314
  # Katello variables for Host Registration
303
315
  extend_allowed_registration_vars :activation_keys
@@ -696,6 +708,11 @@ Foreman::Plugin.register :katello do
696
708
  RemoteExecutionFeature.register(:katello_module_stream_action, N_("Katello: Module Stream Actions"),
697
709
  :description => N_("Perform a module stream action via Katello interface"),
698
710
  :provided_inputs => ['action', 'module_spec', 'options'])
711
+ RemoteExecutionFeature.register(:katello_bootc_action, N_("Katello: Bootc Action"), :description => N_("Katello Bootc interface"))
712
+ RemoteExecutionFeature.register(:katello_bootc_upgrade, N_("Katello: Bootc Upgrade"), :description => N_("Bootc upgrade via Bootc interface"))
713
+ RemoteExecutionFeature.register(:katello_bootc_switch, N_("Katello: Bootc Switch"), :description => N_("Bootc switch via Bootc interface"))
714
+ RemoteExecutionFeature.register(:katello_bootc_rollback, N_("Katello: Bootc Rollback"), :description => N_("Bootc rollback via Bootc interface"))
715
+ RemoteExecutionFeature.register(:katello_bootc_status, N_("Katello: Bootc Status"), :description => N_("Bootc status via Bootc interface"))
699
716
  allowed_template_helpers :errata
700
717
 
701
718
  RemoteExecutionProvider.singleton_class.prepend(Katello::Concerns::RemoteExecutionProviderExtensions)
@@ -27,7 +27,6 @@ Katello::RepositoryTypeManager.register(::Katello::Repository::DOCKER_TYPE) do
27
27
  :priority => 1,
28
28
  :pulp3_service_class => ::Katello::Pulp3::DockerManifest,
29
29
  :removable => true,
30
- :uploadable => true,
31
30
  :primary_content => true
32
31
  content_type Katello::DockerManifestList,
33
32
  :priority => 2,
@@ -26,7 +26,7 @@ Katello::RepositoryTypeManager.register('python') do
26
26
  description: N_("Python packages to exclude from the upstream URL, names separated by newline. You may also specify versions, for example: django~=2.0.")
27
27
 
28
28
  generic_remote_option :package_types, title: N_("Package Types"), type: Array, input_type: "text", delimiter: ",", default: [],
29
- description: N_("Package types to sync for Python content, separated by comma. Leave empty to get every package type. Package types are: bdist_dmg, bdist_dumb, bdist_egg, bdist_msi, bdist_rpm, bdist_wheel, bdist_wininst, sdist.")
29
+ description: N_("Package types to sync for Python content, separated by comma. Leave empty to get every package type. Package types are: bdist_dmg,bdist_dumb,bdist_egg,bdist_msi,bdist_rpm,bdist_wheel,bdist_wininst,sdist.")
30
30
 
31
31
  generic_remote_option :keep_latest_packages, title: N_("Keep latest packages"), type: :number, input_type: "number", default: 0,
32
32
  description: N_("The amount of latest versions of a package to keep on sync, includes pre-releases if synced. Default 0 keeps all versions.")
@@ -1,3 +1,3 @@
1
1
  module Katello
2
- VERSION = "4.15.0".freeze
2
+ VERSION = "4.16.0.rc1".freeze
3
3
  end
data/lib/katello.rb CHANGED
@@ -12,6 +12,8 @@ require "securerandom"
12
12
 
13
13
  require "deface"
14
14
 
15
+ require "jquery-ui-rails"
16
+
15
17
  # to make Foreman#in_rake? helper available if Foreman's lib is available
16
18
  lib_foreman = File.expand_path('lib/foreman', Rails.root)
17
19
  require lib_foreman if Dir.exist?(lib_foreman)