katello 3.2.1.1 → 3.3.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 (486) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/common/katello.global.js +1 -1
  3. data/app/assets/javascripts/katello/common/vendor.js +0 -1
  4. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +20 -12
  5. data/app/controllers/katello/api/v2/activation_keys_controller.rb +2 -2
  6. data/app/controllers/katello/api/v2/api_controller.rb +4 -2
  7. data/app/controllers/katello/api/v2/capsule_content_controller.rb +14 -14
  8. data/app/controllers/katello/api/v2/capsules_controller.rb +3 -3
  9. data/app/controllers/katello/api/v2/content_view_components_controller.rb +100 -0
  10. data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +3 -2
  11. data/app/controllers/katello/api/v2/content_view_puppet_modules_controller.rb +1 -1
  12. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +19 -6
  13. data/app/controllers/katello/api/v2/content_views_controller.rb +3 -4
  14. data/app/controllers/katello/api/v2/environments_controller.rb +1 -1
  15. data/app/controllers/katello/api/v2/gpg_keys_controller.rb +1 -1
  16. data/app/controllers/katello/api/v2/host_collections_controller.rb +2 -2
  17. data/app/controllers/katello/api/v2/host_tracer_controller.rb +31 -0
  18. data/app/controllers/katello/api/v2/packages_controller.rb +53 -1
  19. data/app/controllers/katello/api/v2/products_controller.rb +1 -1
  20. data/app/controllers/katello/api/v2/puppet_modules_controller.rb +8 -0
  21. data/app/controllers/katello/api/v2/repositories_controller.rb +9 -4
  22. data/app/controllers/katello/api/v2/subscriptions_controller.rb +3 -6
  23. data/app/controllers/katello/api/v2/sync_plans_controller.rb +1 -1
  24. data/app/controllers/katello/application_controller.rb +0 -4
  25. data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +11 -3
  26. data/app/controllers/katello/concerns/api/v2/smart_proxies_controller_extensions.rb +35 -0
  27. data/app/controllers/katello/providers_controller.rb +2 -2
  28. data/app/controllers/katello/remote_execution_controller.rb +2 -0
  29. data/app/helpers/katello/concerns/foreman_docker/container_steps_helper_extensions.rb +2 -2
  30. data/app/helpers/katello/concerns/smart_proxy_helper_extensions.rb +23 -0
  31. data/app/lib/actions/candlepin/candlepin_listening_service.rb +8 -2
  32. data/app/lib/actions/candlepin/owner/destroy_imports.rb +17 -0
  33. data/app/lib/actions/candlepin/owner/import.rb +19 -0
  34. data/app/lib/actions/candlepin/owner/import_products.rb +16 -0
  35. data/app/lib/actions/candlepin/owner/upstream_export.rb +18 -0
  36. data/app/lib/actions/candlepin/owner/upstream_update.rb +17 -0
  37. data/app/lib/actions/katello/activation_key/update.rb +4 -0
  38. data/app/lib/actions/katello/capsule_content/configure_capsule.rb +2 -2
  39. data/app/lib/actions/katello/capsule_content/create_repos.rb +17 -6
  40. data/app/lib/actions/katello/capsule_content/sync.rb +12 -8
  41. data/app/lib/actions/katello/content_view/capsule_generate_and_sync.rb +1 -1
  42. data/app/lib/actions/katello/content_view/promote.rb +5 -62
  43. data/app/lib/actions/katello/content_view/promote_to_environment.rb +75 -0
  44. data/app/lib/actions/katello/content_view/publish.rb +11 -6
  45. data/app/lib/actions/katello/content_view/remove.rb +2 -0
  46. data/app/lib/actions/katello/content_view/remove_from_environment.rb +1 -0
  47. data/app/lib/actions/katello/content_view/remove_version.rb +1 -0
  48. data/app/lib/actions/katello/content_view_version/export.rb +1 -0
  49. data/app/lib/actions/katello/content_view_version/incremental_update.rb +82 -22
  50. data/app/lib/actions/katello/event_queue/monitor.rb +1 -1
  51. data/app/lib/actions/katello/host/attach_subscriptions.rb +2 -2
  52. data/app/lib/actions/katello/host/generate_applicability.rb +1 -1
  53. data/app/lib/actions/katello/host/package/install.rb +4 -0
  54. data/app/lib/actions/katello/host/package/remove.rb +4 -0
  55. data/app/lib/actions/katello/host/package/update.rb +4 -0
  56. data/app/lib/actions/katello/host/package_group/install.rb +4 -0
  57. data/app/lib/actions/katello/host/package_group/remove.rb +4 -0
  58. data/app/lib/actions/katello/host/recalculate_errata_status.rb +20 -0
  59. data/app/lib/actions/katello/host/remove_subscriptions.rb +5 -3
  60. data/app/lib/actions/katello/organization/create.rb +5 -1
  61. data/app/lib/actions/katello/organization/destroy.rb +1 -1
  62. data/app/lib/actions/katello/organization/manifest_delete.rb +27 -0
  63. data/app/lib/actions/katello/organization/manifest_import.rb +32 -0
  64. data/app/lib/actions/katello/organization/manifest_refresh.rb +41 -0
  65. data/app/lib/actions/katello/product/content_create.rb +15 -10
  66. data/app/lib/actions/katello/repository/capsule_generate_and_sync.rb +1 -1
  67. data/app/lib/actions/katello/repository/clone_to_environment.rb +1 -1
  68. data/app/lib/actions/katello/repository/clone_to_version.rb +17 -13
  69. data/app/lib/actions/katello/repository/create.rb +3 -1
  70. data/app/lib/actions/katello/repository/filtered_index_content.rb +4 -4
  71. data/app/lib/actions/katello/repository/import_applicability.rb +1 -1
  72. data/app/lib/actions/katello/repository/index_errata.rb +1 -1
  73. data/app/lib/actions/katello/repository/index_package_groups.rb +1 -1
  74. data/app/lib/actions/katello/repository/refresh_repository.rb +2 -1
  75. data/app/lib/actions/katello/sync_plan/add_products.rb +4 -0
  76. data/app/lib/actions/pulp/consumer.rb +19 -1
  77. data/app/lib/actions/pulp/repository/create.rb +10 -0
  78. data/app/lib/actions/pulp/repository/destroy.rb +3 -0
  79. data/app/lib/actions/pulp/repository/refresh.rb +1 -1
  80. data/app/lib/katello/http_resource.rb +6 -1
  81. data/app/lib/katello/resources/candlepin.rb +17 -5
  82. data/app/lib/katello/util/cdn_var_substitutor.rb +3 -3
  83. data/app/lib/katello/validators/content_view_erratum_filter_rule_validator.rb +2 -2
  84. data/app/models/katello/concerns/content_facet_host_extensions.rb +27 -3
  85. data/app/models/katello/concerns/environment_extensions.rb +1 -1
  86. data/app/models/katello/concerns/host_managed_extensions.rb +11 -14
  87. data/app/models/katello/concerns/location_extensions.rb +5 -0
  88. data/app/models/katello/concerns/pulp_database_unit.rb +31 -7
  89. data/app/models/katello/concerns/redhat_extensions.rb +1 -1
  90. data/app/models/katello/concerns/setting_extensions.rb +6 -0
  91. data/app/models/katello/concerns/smart_proxy_extensions.rb +18 -0
  92. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +0 -2
  93. data/app/models/katello/content_facet_applicable_rpm.rb +8 -0
  94. data/app/models/katello/content_view.rb +103 -30
  95. data/app/models/katello/content_view_component.rb +64 -7
  96. data/app/models/katello/content_view_erratum_filter_rule.rb +8 -0
  97. data/app/models/katello/content_view_history.rb +14 -5
  98. data/app/models/katello/content_view_package_filter.rb +4 -0
  99. data/app/models/katello/content_view_version.rb +15 -3
  100. data/app/models/katello/docker_manifest.rb +1 -1
  101. data/app/models/katello/docker_tag.rb +16 -10
  102. data/app/models/katello/errata_status.rb +9 -3
  103. data/app/models/katello/erratum.rb +2 -1
  104. data/app/models/katello/events/{import_host_errata.rb → import_host_applicability.rb} +2 -2
  105. data/app/models/katello/glue.rb +0 -169
  106. data/app/models/katello/glue/candlepin/content.rb +2 -0
  107. data/app/models/katello/glue/candlepin/pool.rb +8 -5
  108. data/app/models/katello/glue/candlepin/product.rb +14 -3
  109. data/app/models/katello/glue/provider.rb +1 -170
  110. data/app/models/katello/glue/pulp/repo.rb +41 -233
  111. data/app/models/katello/glue/pulp/repos.rb +0 -21
  112. data/app/models/katello/host/content_facet.rb +96 -27
  113. data/app/models/katello/host/subscription_facet.rb +9 -6
  114. data/app/models/katello/host_tracer.rb +14 -0
  115. data/app/models/katello/input_template_renderer.rb +7 -0
  116. data/app/models/katello/kt_environment.rb +0 -16
  117. data/app/models/katello/ping.rb +62 -51
  118. data/app/models/katello/pool.rb +1 -1
  119. data/app/models/katello/repository.rb +12 -6
  120. data/app/models/katello/rhsm_fact_name.rb +4 -0
  121. data/app/models/katello/rpm.rb +41 -4
  122. data/app/models/setting/content.rb +12 -4
  123. data/app/overrides/add_smart_proxy_form.rb +5 -0
  124. data/app/services/katello/pulp/consumer.rb +6 -0
  125. data/app/services/katello/pulp/docker_tag.rb +7 -0
  126. data/app/services/katello/pulp/pulp_content_unit.rb +35 -8
  127. data/app/services/katello/pulp/server.rb +4 -0
  128. data/app/views/dashboard/_subscription_widget.html.erb +7 -6
  129. data/app/views/foreman/job_templates/restart_services.erb +17 -0
  130. data/app/views/foreman_docker/containers/steps/_katello_container.html.erb +2 -2
  131. data/app/views/katello/api/v2/content_facet/base.json.rabl +8 -0
  132. data/app/views/katello/api/v2/content_view_components/index.json.rabl +7 -0
  133. data/app/views/katello/api/v2/content_view_components/show.json.rabl +29 -0
  134. data/app/views/katello/api/v2/content_view_filter_rules/show.json.rabl +1 -0
  135. data/app/views/katello/api/v2/content_view_histories/show.json.rabl +1 -5
  136. data/app/views/katello/api/v2/content_views/base.json.rabl +12 -2
  137. data/app/views/katello/api/v2/docker_manifests/show.json.rabl +3 -5
  138. data/app/views/katello/api/v2/docker_tags/_base.json.rabl +2 -2
  139. data/app/views/katello/api/v2/host_tracer/base.json.rabl +6 -0
  140. data/app/views/katello/api/v2/host_tracer/index.json.rabl +7 -0
  141. data/app/views/katello/api/v2/packages/base.json.rabl +3 -0
  142. data/app/views/katello/api/v2/products/show.json.rabl +2 -6
  143. data/app/views/katello/api/v2/repositories/show.json.rabl +1 -0
  144. data/app/views/overrides/smart_proxies/_download_policy.erb +3 -0
  145. data/app/views/overrides/smart_proxies/_environment_tab_pane.html.erb +1 -1
  146. data/config/locales/compare_upstream.sh +0 -0
  147. data/config/locales/update.sh +0 -0
  148. data/config/routes.rb +1 -33
  149. data/config/routes/api/rhsm.rb +1 -1
  150. data/config/routes/api/v2.rb +13 -61
  151. data/config/routes/overrides.rb +3 -0
  152. data/db/migrate/20160520175340_add_host_applicable_package.rb +11 -0
  153. data/db/migrate/20160728005028_add_latest_version_to_content_view_component.rb +9 -0
  154. data/db/migrate/20160907231049_add_username_password_to_repository.rb +6 -0
  155. data/db/migrate/20160908234510_add_rpm_nvra.rb +10 -0
  156. data/db/migrate/20160923143611_add_action_to_content_view_histories.rb +34 -0
  157. data/db/migrate/20160930121245_content_view_force_puppet_env.rb +5 -0
  158. data/db/migrate/20160930150810_add_smart_proxy_download_policy.rb +14 -0
  159. data/db/migrate/20161003130853_add_architecture_to_katello_content_view_package_filter_rule.rb +5 -0
  160. data/db/migrate/20161014133811_move_content_view_version_description_to_histories.rb +41 -0
  161. data/db/migrate/20161031204903_add_tracer_support.rb +13 -0
  162. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.controller.js +1 -6
  163. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.module.js +0 -108
  164. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.routes.js +127 -0
  165. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-add-host-collections.controller.js +7 -7
  166. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-add-subscriptions.controller.js +4 -4
  167. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-associations.controller.js +3 -3
  168. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-copy.controller.js +30 -0
  169. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-details.controller.js +1 -15
  170. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-host-collections.controller.js +7 -7
  171. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-product-details.controller.js +1 -1
  172. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-subscriptions.controller.js +4 -4
  173. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-add-subscriptions.html +11 -14
  174. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-associations-content-hosts.html +5 -10
  175. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-copy.html +17 -0
  176. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-details.html +77 -107
  177. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-host-collections-table.html +30 -48
  178. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-host-collections.html +4 -5
  179. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-info.html +96 -107
  180. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-products.html +1 -1
  181. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-subscriptions-list.html +17 -32
  182. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-subscriptions.html +4 -4
  183. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/new/new-activation-key.controller.js +2 -3
  184. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html +65 -82
  185. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/views/activation-keys.html +34 -7
  186. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion_katello.js +3 -3
  187. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/capsule-content/capsule-content.controller.js +4 -4
  188. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/capsule-content/sync-state.service.js +1 -1
  189. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-action-errata.controller.js +2 -2
  190. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions-errata.html +5 -5
  191. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions-host-collections.html +3 -3
  192. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions-packages.html +16 -16
  193. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions-subscriptions.html +1 -1
  194. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-host-register.controller.js +2 -2
  195. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.module.js +37 -7
  196. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-errata.controller.js +2 -0
  197. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-actions.controller.js +14 -0
  198. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-applicable.controller.js +51 -0
  199. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-installed.controller.js +37 -0
  200. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages.controller.js +18 -44
  201. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-traces.controller.js +69 -0
  202. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html +14 -13
  203. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-actions.html +67 -0
  204. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-applicable.html +65 -0
  205. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-installed.html +52 -0
  206. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages.html +9 -119
  207. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-traces.html +76 -0
  208. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-add-host-collections.controller.js +2 -2
  209. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-host-collections.controller.js +2 -2
  210. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-add-subscriptions.html +1 -1
  211. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-details.html +32 -8
  212. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +3 -3
  213. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-products.html +1 -1
  214. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-subscriptions-list.html +2 -2
  215. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/host-collections-table.html +1 -1
  216. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts-table-full.html +15 -1
  217. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +4 -5
  218. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-view.factory.js +3 -3
  219. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.controller.js +0 -1
  220. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.routes.js +11 -6
  221. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-deletion.controller.js +1 -1
  222. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-activation-keys.controller.js +2 -2
  223. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-content-hosts.controller.js +1 -1
  224. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-environments.controller.js +3 -3
  225. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion.controller.js +2 -2
  226. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-activation-keys.html +1 -1
  227. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/content-view-component.factory.js +32 -0
  228. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/{content-view-composite-available-content-views.controller.js → components/content-view-composite-available-content-views.controller.js} +21 -22
  229. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/content-view-composite-content-views-list.controller.js +66 -0
  230. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/{views → components/views}/content-view-composite-available-content-views.html +18 -18
  231. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/views/content-view-composite-content-views-list.html +86 -0
  232. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/{views → components/views}/content-view-composite.html +4 -4
  233. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-details.controller.js +30 -8
  234. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-promotion.controller.js +7 -4
  235. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-repositories.service.js +2 -2
  236. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter-repositories.controller.js +2 -2
  237. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/package-filter.controller.js +12 -1
  238. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/date-type-errata-filter.html +1 -2
  239. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/date-type-errata.html +2 -2
  240. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/errata-filter-details.html +6 -4
  241. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filter-repositories.html +3 -3
  242. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filters.html +1 -1
  243. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/new-filter.html +1 -1
  244. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-filter-details.html +16 -1
  245. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/histories/content-view-history.controller.js +2 -0
  246. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/histories/views/content-view-history.html +1 -1
  247. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/views/content-view-puppet-module-names.html +2 -3
  248. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/views/content-view-puppet-modules.html +1 -1
  249. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-details.html +5 -5
  250. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-docker-repositories.html +7 -4
  251. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-file-repositories.html +3 -0
  252. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-info.html +14 -0
  253. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-ostree-repositories.html +5 -2
  254. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-promotion.html +11 -0
  255. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-publish.html +1 -1
  256. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-repositories.html +8 -5
  257. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-versions.html +3 -7
  258. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/new/content-view-new.controller.js +1 -1
  259. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/new/views/content-view-new.html +1 -1
  260. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/views/content-views.html +1 -1
  261. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/{docker-tags-details.controller.js → docker-tag-details.controller.js} +5 -3
  262. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-details.html +32 -0
  263. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-environments.html +50 -0
  264. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-info.html +42 -0
  265. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.controller.js +1 -1
  266. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.routes.js +33 -18
  267. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/views/docker-tags.html +31 -6
  268. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/environment.controller.js +12 -4
  269. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-content-views.html +1 -1
  270. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-docker.html +1 -1
  271. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-errata.html +1 -1
  272. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-ostree.html +1 -1
  273. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-packages.html +1 -1
  274. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-puppet-modules.html +1 -1
  275. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-repositories.html +1 -1
  276. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment.html +53 -49
  277. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/views/new-environment.html +1 -1
  278. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/apply-errata.controller.js +2 -2
  279. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/errata-content-hosts.controller.js +1 -1
  280. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/errata-details-repositories.controller.js +3 -3
  281. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/errata-details-content-hosts.html +1 -1
  282. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/errata-details-repositories.html +3 -3
  283. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/apply-errata-confirm.html +6 -2
  284. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/apply-errata.html +4 -4
  285. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata.html +4 -4
  286. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/gpg-key-details.controller.js +1 -5
  287. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/gpg-key-products.controller.js +35 -0
  288. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/gpg-key-repositories.controller.js +35 -0
  289. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-details.html +40 -48
  290. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-info.html +34 -22
  291. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-products.html +30 -29
  292. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-repositories.html +30 -34
  293. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/gpg-key.factory.js +21 -1
  294. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/gpg-keys.controller.js +0 -19
  295. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/gpg-keys.module.js +0 -76
  296. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/gpg-keys.routes.js +76 -0
  297. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/new/new-gpg-key.controller.js +10 -11
  298. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/new/views/new-gpg-key.html +44 -0
  299. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/views/gpg-keys.html +36 -10
  300. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/host-collection-add-hosts.controller.js +4 -4
  301. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/host-collection-copy.controller.js +30 -0
  302. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/host-collection-details.controller.js +10 -17
  303. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/host-collection-hosts.controller.js +3 -3
  304. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-add-hosts.html +7 -9
  305. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-copy.html +17 -0
  306. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-details.html +55 -94
  307. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-hosts-list.html +8 -10
  308. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-hosts.html +4 -4
  309. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-info.html +91 -58
  310. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collections.controller.js +4 -12
  311. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collections.module.js +0 -85
  312. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collections.routes.js +80 -0
  313. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/new/host-collection-form.controller.js +1 -1
  314. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/new/new-host-collection.controller.js +22 -2
  315. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/new/views/new-host-collection.html +53 -0
  316. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/views/host-collections.html +36 -7
  317. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-package.factory.js +2 -1
  318. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-traces.factory.js +18 -0
  319. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/katello-features.run.js +4 -4
  320. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/fenced-pages.service.js +1 -0
  321. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/views/organization-selector.html +1 -1
  322. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/ostree-branches-details-repositories.controller.js +3 -3
  323. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branches-details-repositories.html +1 -1
  324. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/{package-details-repositories.controller.js → package-repositories.controller.js} +10 -10
  325. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/{package-details.controller.js → package.controller.js} +9 -7
  326. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/{packages-details-dependencies.html → package-dependencies.html} +0 -0
  327. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package-files.html +11 -0
  328. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package-info.html +81 -0
  329. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/{packages-details-repositories.html → package-repositories.html} +10 -12
  330. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package.html +44 -0
  331. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/package.factory.js +6 -0
  332. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/packages.controller.js +18 -4
  333. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/packages.routes.js +37 -35
  334. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/views/packages.html +53 -8
  335. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/partials/sync-status.html +17 -19
  336. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-details-info.controller.js +3 -12
  337. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-details.controller.js +14 -8
  338. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-repositories.controller.js +30 -24
  339. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{repositories → products/details/repositories}/details/repository-details-info.controller.js +4 -82
  340. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{repositories → products/details/repositories}/details/repository-details-manage-content.controller.js +17 -9
  341. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +98 -0
  342. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html +78 -0
  343. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +299 -0
  344. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-docker-manifests.html +71 -0
  345. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-ostree-branches.html +46 -0
  346. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-package-groups.html +18 -0
  347. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-packages.html +60 -0
  348. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-puppet-modules.html +68 -0
  349. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-tasks.html +4 -0
  350. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{repositories → products/details/repositories}/download-policy.service.js +0 -0
  351. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{repositories → products/details/repositories}/new/new-repository.controller.js +27 -14
  352. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{repositories/new/views/repository-new.html → products/details/repositories/new/views/new-repository.html} +31 -14
  353. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{repositories → products/details/repositories}/repositories.module.js +1 -0
  354. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.routes.js +138 -0
  355. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{repositories → products/details/repositories}/repository.factory.js +0 -0
  356. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +182 -0
  357. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-details.html +71 -57
  358. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-info.html +66 -85
  359. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-new-sync-plan.html +2 -0
  360. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-tasks.html +1 -1
  361. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery-form.controller.js +3 -6
  362. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery.controller.js +5 -3
  363. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-base.html +8 -13
  364. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-create.html +135 -144
  365. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html +19 -20
  366. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/new/new-product.controller.js +1 -1
  367. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/new/product-form.controller.js +3 -4
  368. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/new/views/product-new-form.html +4 -8
  369. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/new/views/product-new.html +5 -19
  370. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/product-bulk-action.factory.js +19 -0
  371. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/product.factory.js +1 -21
  372. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products-bulk-action.controller.js +93 -0
  373. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.controller.js +8 -12
  374. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.module.js +4 -240
  375. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.routes.js +132 -0
  376. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products.html +97 -15
  377. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/puppet-modules-details-repositories.html +1 -1
  378. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/views/puppet-modules.html +1 -1
  379. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/{subscription-associations-activation-keys.controller.js → subscription-activation-keys.controller.js} +5 -3
  380. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/{subscription-associations-content-hosts.controller.js → subscription-content-hosts.controller.js} +5 -3
  381. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/{subscription-associations-activation-keys.html → subscription-activation-keys.html} +1 -1
  382. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/{subscription-associations-content-hosts.html → subscription-content-hosts.html} +0 -0
  383. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/subscription-details.html +40 -52
  384. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/subscription-info.html +72 -98
  385. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/subscription-products.html +1 -1
  386. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/manifest-details.controller.js +1 -1
  387. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/views/manifest-import.html +2 -2
  388. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/views/manifest.html +26 -41
  389. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/subscriptions.controller.js +7 -6
  390. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/subscriptions.module.js +0 -107
  391. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/subscriptions.routes.js +110 -0
  392. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscriptions.html +49 -8
  393. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-add-products.controller.js +15 -11
  394. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-details-info.controller.js +2 -2
  395. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-details.controller.js +32 -29
  396. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-products.controller.js +17 -12
  397. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-details.html +61 -54
  398. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-info.html +62 -65
  399. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-products.html +63 -7
  400. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/new/new-sync-plan.controller.js +3 -6
  401. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/new/views/new-sync-plan-form.html +19 -10
  402. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/new/views/new-sync-plan.html +7 -14
  403. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/sync-plan.factory.js +1 -3
  404. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/sync-plans.controller.js +4 -15
  405. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/sync-plans.module.js +2 -91
  406. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/sync-plans.routes.js +84 -0
  407. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/views/sync-plans.html +40 -8
  408. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/task-input-reduce.filter.js +1 -1
  409. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/task.factory.js +9 -2
  410. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/tasks-nutupane.factory.js +1 -1
  411. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/tasks-table.directive.js +1 -1
  412. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/task-details.html +1 -1
  413. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/tasks-table.html +1 -1
  414. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/user-tasks-table.html +1 -1
  415. data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/bastion_katello.scss +3 -2
  416. data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/errata.scss +1 -1
  417. data/engines/bastion_katello/bastion_katello.gemspec +1 -1
  418. data/engines/bastion_katello/lib/bastion_katello/engine.rb +4 -1
  419. data/lib/katello/engine.rb +4 -13
  420. data/lib/katello/permissions/activation_key_permissions.rb +3 -2
  421. data/lib/katello/permissions/capsule_content_permissions.rb +2 -1
  422. data/lib/katello/permissions/content_view_permissions.rb +8 -6
  423. data/lib/katello/permissions/gpg_key_permissions.rb +1 -2
  424. data/lib/katello/permissions/host_collections_permissions.rb +2 -3
  425. data/lib/katello/permissions/host_permissions.rb +9 -2
  426. data/lib/katello/permissions/lifecycle_environment_permissions.rb +2 -3
  427. data/lib/katello/permissions/product_permissions.rb +10 -7
  428. data/lib/katello/permissions/roles_permissions.rb +5 -0
  429. data/lib/katello/permissions/sync_plan_permissions.rb +1 -2
  430. data/lib/katello/plugin.rb +28 -3
  431. data/lib/katello/tasks/import_applicability.rake +12 -0
  432. data/lib/katello/tasks/reimport.rake +7 -9
  433. data/lib/katello/tasks/repository.rake +105 -0
  434. data/lib/katello/tasks/unify_hosts.rake +73 -25
  435. data/lib/katello/version.rb +1 -1
  436. metadata +119 -81
  437. data/app/controllers/katello/api/v2/uebercerts_controller.rb +0 -17
  438. data/app/controllers/katello/organizations_controller.rb +0 -32
  439. data/app/lib/actions/katello/provider/manifest_delete.rb +0 -29
  440. data/app/lib/actions/katello/provider/manifest_import.rb +0 -34
  441. data/app/lib/actions/katello/provider/manifest_refresh.rb +0 -30
  442. data/app/lib/katello/glue/queue.rb +0 -69
  443. data/app/lib/katello/glue/task.rb +0 -44
  444. data/db/seeds.d/108-ensure_sync_notification.rb +0 -11
  445. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/views/activation-keys-table-collapsed.html +0 -19
  446. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/views/activation-keys-table-full.html +0 -24
  447. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-composite-content-views-list.controller.js +0 -63
  448. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-composite-content-views-list.html +0 -80
  449. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tags-details.html +0 -72
  450. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/views/docker-tags-table-collapsed.html +0 -19
  451. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/views/docker-tags-table-full.html +0 -25
  452. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/new/views/gpg-key-new.html +0 -72
  453. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/views/gpg-keys-table-collapsed.html +0 -17
  454. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/views/gpg-keys-table-full.html +0 -24
  455. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-actions.html +0 -36
  456. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/new/views/host-collection-new-form.html +0 -45
  457. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/new/views/host-collection-new.html +0 -21
  458. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/views/host-collections-table-collapsed.html +0 -19
  459. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/views/host-collections-table-full.html +0 -28
  460. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/packages-details-files.html +0 -11
  461. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/packages-details-info.html +0 -85
  462. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/packages-details.html +0 -59
  463. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/views/packages-table-collapsed.html +0 -19
  464. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/views/packages-table-full.html +0 -22
  465. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/products-bulk-action-sync-plan.controller.js +0 -53
  466. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/products-bulk-action-sync.controller.js +0 -26
  467. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/products-bulk-action.controller.js +0 -64
  468. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/views/bulk-actions-sync-plan.html +0 -65
  469. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/views/bulk-actions-sync.html +0 -38
  470. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/views/bulk-actions.html +0 -78
  471. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-repositories.html +0 -190
  472. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products-table-collapsed.html +0 -20
  473. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products-table-full.html +0 -34
  474. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repositories/details/views/repository-info.html +0 -390
  475. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repositories/details/views/repository-manage-docker-manifests.html +0 -77
  476. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repositories/details/views/repository-manage-ostree-branches.html +0 -60
  477. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repositories/details/views/repository-manage-package-groups.html +0 -25
  478. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repositories/details/views/repository-manage-packages.html +0 -72
  479. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repositories/details/views/repository-manage-puppet-modules.html +0 -82
  480. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscriptions-table-collapsed.html +0 -26
  481. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscriptions-table-full.html +0 -34
  482. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-products-table.html +0 -80
  483. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/views/sync-plans-table-collapsed.html +0 -21
  484. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/views/sync-plans-table-full.html +0 -36
  485. data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/gpg-keys.scss +0 -34
  486. data/lib/katello/tasks/regenerate_repo_metadata.rake +0 -18
@@ -1,59 +0,0 @@
1
- <span page-title ng-model="package">{{ 'Package: ' | translate }} {{ package.nvra}}</span>
2
-
3
- <div data-extend-template="layouts/panel.html">
4
- <div data-block="panel">
5
- <section class="nutupane-details" ng-cloak bst-container-scroll>
6
- <div ng-show="panel.error" bst-alerts success-messages="successMessages" error-messages="errorMessages"></div>
7
-
8
- <div ng-hide="panel.error">
9
- <header class="details-header">
10
- <h2 class="fl">{{ package.nvra }}</h2>
11
-
12
- <div class="details-actions fr">
13
- <button class="btn btn-default" ui-sref="packages.index">
14
- <i class="fa fa-remove"></i>
15
- {{ "Close" | translate }}
16
- </button>
17
- </div>
18
- </header>
19
-
20
- <nav class="details-navigation">
21
- <ul>
22
- <li ng-class="{active: isState('packages.details.info')}">
23
- <a ui-sref="packages.details.info">
24
- <span translate>
25
- Details
26
- </span>
27
- </a>
28
- </li>
29
- <li ng-class="{active: isState('packages.details.files')}">
30
- <a ui-sref="packages.details.files">
31
- <span translate>
32
- Files
33
- </span>
34
- </a>
35
- </li>
36
- <li ng-class="{active: isState('packages.details.dependencies')}">
37
- <a ui-sref="packages.details.dependencies">
38
- <span translate>
39
- Dependencies
40
- </span>
41
- </a>
42
- </li>
43
- <li ng-class="{active: isState('packages.details.repositories')}">
44
- <a ui-sref="packages.details.repositories">
45
- <span translate>
46
- Repositories
47
- </span>
48
- </a>
49
- </li>
50
- </ul>
51
- </nav>
52
-
53
- <div bst-alerts success-messages="successMessages" error-messages="errorMessages"></div>
54
-
55
- <section ui-view></section>
56
- </div>
57
- </section>
58
- </div>
59
- </div>
@@ -1,19 +0,0 @@
1
- <table class="table table-striped table-full" ng-class="{'table-mask': table.working}">
2
- <thead>
3
- <tr bst-table-head>
4
- <th bst-table-column="name" sortable>{{ "RPM" | translate }}</th>
5
- </tr>
6
- </thead>
7
-
8
- <tbody>
9
- <tr bst-table-row
10
- ng-repeat="package in table.rows"
11
- active-row="stateIncludes('package.details', {packageId: package.uuid})">
12
- <td bst-table-cell clas="ellipsis-column">
13
- <a ui-sref="packages.details.info({packageId: package.uuid})">
14
- {{ package.nvrea}}
15
- </a>
16
- </td>
17
- </tr>
18
- </tbody>
19
- </table>
@@ -1,22 +0,0 @@
1
- <table class="table table-striped table-bordered" ng-class="{'table-mask': table.working}">
2
- <thead>
3
- <tr bst-table-head>
4
- <th bst-table-column="name" sortable>{{ "RPM" | translate }}</th>
5
- <th bst-table-column="version">{{ "Summary" | translate }}</th>
6
- </tr>
7
- </thead>
8
-
9
- <tbody>
10
- <tr bst-table-row ng-repeat="package in table.rows">
11
- <td bst-table-cell>
12
- <a ui-sref="packages.details.info({packageId: package.uuid})">
13
- {{ package.nvra}}
14
- </a>
15
- <i class="fa fa-chevron-right selected-icon" ng-show="package.selected"></i>
16
- </td>
17
- <td bst-table-cell>
18
- {{ package.summary }}
19
- </td>
20
- </tr>
21
- </tbody>
22
- </table>
@@ -1,53 +0,0 @@
1
- /**
2
- * @ngdoc object
3
- * @name Bastion.products.controller:ProductsBulkActionSyncPlanController
4
- *
5
- * @requires $scope
6
- * @requires Nutupane
7
- * @requires SyncPlan
8
- * @requires ProductBulkAction
9
- *
10
- * @description
11
- * A controller for providing bulk sync plan functionality for products.
12
- */
13
- angular.module('Bastion.products').controller('ProductsBulkActionSyncPlanController',
14
- ['$scope', 'Nutupane', 'SyncPlan', 'ProductBulkAction', 'GlobalNotification',
15
- function ($scope, Nutupane, SyncPlan, ProductBulkAction, GlobalNotification) {
16
- var syncPlanNutupane = new Nutupane(SyncPlan);
17
-
18
- $scope.syncPlanTable = syncPlanNutupane.table;
19
- syncPlanNutupane.query();
20
-
21
- function success(response) {
22
- angular.forEach(response.displayMessages.success, function(message) {
23
- GlobalNotification.setSuccessMessage(message);
24
- });
25
-
26
- angular.forEach(response.displayMessages.error, function(message) {
27
- GlobalNotification.setErrorMessage(message);
28
- });
29
- $scope.updatingSyncPlans = false;
30
- }
31
-
32
- function error(response) {
33
- angular.forEach(response.data.errors, function(message) {
34
- GlobalNotification.setErrorMessage("An error occurred updating the sync plan: " + message);
35
- });
36
- $scope.updatingSyncPlans = false;
37
- }
38
-
39
- $scope.updateSyncPlan = function () {
40
- $scope.updatingSyncPlans = true;
41
- $scope.actionParams.ids = $scope.getSelectedProductIds();
42
- $scope.actionParams['plan_id'] = $scope.syncPlanTable.chosenRow.id;
43
- ProductBulkAction.updateProductSyncPlan($scope.actionParams, success, error);
44
- };
45
-
46
- $scope.removeSyncPlan = function () {
47
- $scope.updatingSyncPlans = true;
48
- $scope.actionParams.ids = $scope.getSelectedProductIds();
49
- $scope.actionParams['plan_id'] = null;
50
- ProductBulkAction.updateProductSyncPlan($scope.actionParams, success, error);
51
- };
52
- }]
53
- );
@@ -1,26 +0,0 @@
1
- /**
2
- * @ngdoc object
3
- * @name Bastion.products.controller:ProductsBulkActionSyncController
4
- *
5
- * @requires $scope
6
- * @requires translate
7
- * @requires ProductBulkAction
8
- *
9
- * @description
10
- * A controller for providing bulk sync functionality for products..
11
- */
12
- angular.module('Bastion.products').controller('ProductsBulkActionSyncController',
13
- ['$scope', '$state', 'translate', 'ProductBulkAction',
14
- function ($scope, $state, translate, ProductBulkAction) {
15
- $scope.repositoryCount = 0;
16
-
17
- $scope.syncProducts = function () {
18
- $scope.actionParams.ids = $scope.getSelectedProductIds();
19
-
20
- ProductBulkAction.syncProducts($scope.actionParams, function (task) {
21
- $state.go('task', {taskId: task.id});
22
- });
23
-
24
- };
25
- }]
26
- );
@@ -1,64 +0,0 @@
1
- /**
2
- * @ngdoc object
3
- * @name Bastion.products.controller:ProductsBulkActionController
4
- *
5
- * @requires $scope
6
- * @requires translate
7
- * @requires ProductBulkAction
8
- * @requires CurrentOrganization
9
- *
10
- * @description
11
- * A controller for providing bulk action functionality to the products page.
12
- */
13
- angular.module('Bastion.products').controller('ProductsBulkActionController',
14
- ['$scope', 'translate', 'ProductBulkAction', 'CurrentOrganization', 'GlobalNotification',
15
- function ($scope, translate, ProductBulkAction, CurrentOrganization, GlobalNotification) {
16
-
17
- $scope.removeProducts = {
18
- confirm: false,
19
- workingMode: false
20
- };
21
-
22
- $scope.actionParams = {
23
- ids: [],
24
- 'organization_id': CurrentOrganization
25
- };
26
-
27
- $scope.getSelectedProductIds = function () {
28
- var rows = $scope.productTable.getSelected();
29
- return _.pluck(rows, 'id');
30
- };
31
-
32
- $scope.removeProducts = function () {
33
- var success, error;
34
-
35
- $scope.removingProducts = true;
36
- $scope.actionParams.ids = $scope.getSelectedProductIds();
37
-
38
- success = function (data) {
39
- $scope.productsNutupane.refresh();
40
- $scope.table.selectAll(false);
41
-
42
- angular.forEach(data.displayMessages.success, function(message) {
43
- GlobalNotification.setSuccessMessage(message);
44
- });
45
-
46
- angular.forEach(data.displayMessages.error, function(message) {
47
- GlobalNotification.setErrorMessage(message);
48
- });
49
-
50
- $scope.removingProducts = false;
51
- $scope.transitionTo('products.index');
52
- };
53
-
54
- error = function (response) {
55
- angular.forEach(response.data.errors, function (errorMessage) {
56
- GlobalNotification.setErrorMessage(translate("An error occurred removing the Products: ") + errorMessage);
57
- });
58
- $scope.removingProducts = false;
59
- };
60
-
61
- ProductBulkAction.removeProducts($scope.actionParams, success, error);
62
- };
63
- }]
64
- );
@@ -1,65 +0,0 @@
1
- <span page-title>{{ 'Bulk Alter Products Sync Plan' | translate }}</span>
2
-
3
- <section class="details details-full">
4
-
5
- <div bst-alerts success-messages="successMessages" error-messages="errorMessages"></div>
6
-
7
- <input type="text"
8
- class="form-control filter-input"
9
- placeholder="{{ 'Filter' | translate }}"
10
- ng-model="syncPlanSearch"/>
11
-
12
- <span class="pull-right">
13
-
14
- <button class="btn btn-default"
15
- ng-hide="denied('create_sync_plans')"
16
- ui-sref="products.bulk-actions.sync-plan.new"
17
- translate>
18
- Create Sync Plan
19
- </button>
20
- <button class="btn btn-default"
21
- ng-hide="denied('edit_products')"
22
- ng-click="removeSyncPlan()">
23
- <i class="fa fa-spinner fa-spin" ng-show="updatingSyncPlans && !syncPlanTable.chosenRow"></i>
24
- <span ng-show="updatingSyncPlans && !syncPlanTable.chosenRow" translate>Unattaching...</span>
25
- <i ng-hide="updatingSyncPlans && !syncPlanTable.chosenRow" class="fa fa-remove"></i>
26
- <span ng-hide="updatingSyncPlans && !syncPlanTable.chosenRow" translate>Unattach Sync Plan</span>
27
- </button>
28
- <button class="btn btn-primary"
29
- ng-hide="denied('edit_products')"
30
- ng-click="updateSyncPlan()"
31
- ng-disabled="!syncPlanTable.chosenRow">
32
- <i class="fa fa-spinner fa-spin" ng-show="updatingSyncPlans && syncPlanTable.chosenRow"></i>
33
- <span ng-show="updatingSyncPlans && syncPlanTable.chosenRow" translate>Updating...</span>
34
- <i ng-hide="updatingSyncPlans && syncPlanTable.chosenRow" class="fa fa-refresh"></i>
35
- <span ng-hide="updatingSyncPlans && syncPlanTable.chosenRow" translate>Update Sync Plan</span>
36
- </button>
37
- </span>
38
-
39
- <div class="nutupane">
40
- <table bst-table="syncPlanTable"
41
- class="table table-striped"
42
- ng-class="{'table-mask': syncPlanTable.working}">
43
- <thead>
44
- <tr bst-table-head row-choice>
45
- <th bst-table-column="name" translate>Name</th>
46
- <th bst-table-column="description" translate>Description</th>
47
- <th bst-table-column="interval" translate>Interval</th>
48
- <th bst-table-column="sync-date" translate>Start Date</th>
49
- </tr>
50
- </thead>
51
-
52
- <tbody>
53
- <tr bst-table-row
54
- row-choice="syncPlan"
55
- ng-repeat="syncPlan in syncPlanTable.rows | filter:syncPlanSearch">
56
- <td bst-table-cell>{{ syncPlan.name }}</td>
57
- <td bst-table-cell>{{ syncPlan.description }}</td>
58
- <td bst-table-cell>{{ syncPlan.interval | capitalize }}</td>
59
- <td bst-table-cell>{{ syncPlan.sync_date }}</td>
60
- </tr>
61
- </tbody>
62
- </table>
63
- </div>
64
-
65
- </section>
@@ -1,38 +0,0 @@
1
- <span page-title>{{ 'Bulk Sync Products' | translate }}</span>
2
-
3
- <div>
4
- <header translate>Press 'Sync Now' below to begin syncing the following product(s).</header>
5
-
6
- <table class="table table-striped">
7
- <thead>
8
- <tr>
9
- <th translate>Name</th>
10
- <th translate>Description</th>
11
- <th translate>Repositories</th>
12
- </tr>
13
- </thead>
14
-
15
- <tbody>
16
- <tr ng-repeat="product in productTable.getSelected()">
17
- <td>
18
- <a ui-sref="products.details.info({ productId: product.id })">{{ product.name }}</a>
19
- </td>
20
- <td>{{ product.description }}</td>
21
- <td>
22
- <span ng-repeat="repository in product.repositories">
23
- {{ repository.name }}<span ng-show="!$last">, </span>
24
- </span>
25
- </td>
26
- </tr>
27
- </tbody>
28
- </table>
29
-
30
- <div class="pull-left">
31
- <button class="btn btn-default"
32
- ng-hide="denied('sync_products')"
33
- ng-click="syncProducts()">
34
- <i class="fa fa-refresh"></i>
35
- <span translate>Sync Now</span>
36
- </button>
37
- </div>
38
- </div>
@@ -1,78 +0,0 @@
1
- <span page-title>{{ 'Product Bulk Actions' | translate }}</span>
2
-
3
- <section class="nutupane-details" ng-cloak bst-container-scroll>
4
- <header class="details-header">
5
- <h2 class="fl" translate>Bulk Actions</h2>
6
-
7
- <div class="fr">
8
- <button class="btn btn-default"
9
- bst-feature-flag="custom_products"
10
- ng-disabled="product.redhat || removeProducts.workingMode"
11
- ng-click="openModal()"
12
- ng-hide="denied('destroy_products')">
13
- <i class="fa fa-trash-o"></i>
14
- {{ "Remove Products" | translate }}
15
- </button>
16
-
17
- <span ng-show="removeProducts.workingMode">
18
- <i class="fa fa-spinner inline-icon fa-spin"></i>
19
- <span>{{ "Removing Products" | translate }}</span>
20
- </span>
21
-
22
- <button class="btn btn-default" ui-sref="products.index">
23
- <i class="fa fa-remove"></i>
24
- {{ "Close" | translate }}
25
- </button>
26
-
27
- <div bst-modal="removeProducts()" model="productTable">
28
- <div data-block="modal-header"
29
- translate
30
- translate-n="productTable.getSelected().length"
31
- translate-plural="Remove {{ productTable.getSelected().length }} products?">
32
- Remove product?
33
- </div>
34
- <div data-block="modal-body"
35
- translate
36
- translate-n="productTable.getSelected().length"
37
- translate-plural="Are you sure you want to remove {{ productTable.getSelected().length }} products selected?">
38
- Are you sure you want to remove {{ productTable.getSelected()[0].name }}?
39
- </div>
40
- </div>
41
- </div>
42
- </header>
43
-
44
- <nav class="details-navigation">
45
- <ul>
46
- <li>
47
- <a translate
48
- ui-sref="products.bulk-actions.sync"
49
- ng-class="{active: stateIncludes('products.bulk-actions.sync')}">
50
- Product Sync
51
- </a>
52
- </li>
53
-
54
- <li>
55
- <a translate
56
- ui-sref="products.bulk-actions.sync-plan"
57
- ng-class="{active: stateIncludes('products.bulk-actions.sync-plan')}">
58
- Alter Sync Plans
59
- </a>
60
- </li>
61
- </ul>
62
- </nav>
63
-
64
- <div>
65
- <div bst-alerts success-messages="successMessages" error-messages="errorMessages"></div>
66
-
67
- <div class="alert warning alert-warning" ng-show="table.numSelected == 0">
68
- <i class="fa fa-exclamation-sign"></i>
69
- {{ 'At least one product needs to be selected in order to perform a bulk action.' | translate }}
70
- {{ products.length }}
71
- </div>
72
-
73
- <span ng-hide="table.numSelected == 0">
74
- <div ui-view></div>
75
- </span>
76
- </div>
77
-
78
- </section>
@@ -1,190 +0,0 @@
1
- <span page-title ng-model="product">{{ 'Repositories for Product:' | translate }} {{ product.name }}</span>
2
-
3
- <section>
4
- <div data-extend-template="layouts/details-nutupane.html">
5
- <div data-block="header"> {{ 'Repositories' | translate }} </div>
6
- <div data-block="messages">
7
- <div bst-alert="success" ng-show="removingTasks.length > 0" close="close($index)" ng-repeat="task in removingTasks">
8
- <div>
9
- <p translate>Removal of selected repositories initiated successfully. </p>
10
- <div><a href="/foreman_tasks/tasks/{{task}}" translate>Click here to check the status of the task.</a></div>
11
- </div>
12
- </div>
13
- <div bst-alerts success-messages="successMessages" error-messages="errorMessages"></div>
14
- <div bst-alert="danger" ng-show="warningMessages">
15
- <strong translate>There were errors while removing the following Repositories:</strong>
16
- <ol>
17
- <li data-ng-repeat="message in warningMessages">
18
- {{ message }}
19
- </li>
20
- </ol>
21
- <a ui-sref="products.details.tasks.details({taskId: warningTaskId})" translate>Click here to see the task for the successful removals.</a>
22
- </div>
23
- </div>
24
-
25
- <div data-block="actions">
26
- <div bst-modal="removeSelectedRepositories()" model="detailsTable">
27
- <div data-block="modal-header"
28
- translate
29
- translate-n="detailsTable.numSelected"
30
- translate-plural="Remove {{ detailsTable.numSelected }} repostories?">
31
- Remove repository?
32
- </div>
33
- <div data-block="modal-body"
34
- translate
35
- translate-n="detailsTable.numSelected"
36
- translate-plural="Remove {{ detailsTable.numSelected }} repostories?">
37
- Are you sure you want to remove {{ detailsTable.getSelected()[0].name }}?
38
- </div>
39
- </div>
40
-
41
- <span ng-switch="getRepositoriesNonDeletableReason(product)" bst-feature-flag="custom_products">
42
- <i class="fa fa-question-sign" ng-switch-when="permissions"
43
- tooltip="{{ 'You cannot remove these repositories because you do not have permission.' | translate }}"
44
- tooltip-animation="false"
45
- tooltip-placement="left"
46
- tooltip-append-to-body="true">
47
- </i>
48
- <i class="fa fa-question-sign" ng-switch-when="redhat"
49
- tooltip="{{ 'You cannot remove these repositories because they belong to a Red Hat product.' | translate }}"
50
- tooltip-animation="false"
51
- tooltip-placement="left"
52
- tooltip-append-to-body="true">
53
- </i>
54
- </span>
55
-
56
- <button class="btn btn-default"
57
- ng-click="openModal()"
58
- ng-show="canRemoveRepositories(product)"
59
- ng-disabled="removingRepositories || detailsTable.numSelected == 0">
60
- <span ng-show="removingRepositories">
61
- <i class="fa fa-spinner inline-icon fa-spin"></i>
62
- <span>{{ "Removing Repositories" | translate }}</span>
63
- </span>
64
- <span ng-hide="removingRepositories">
65
- <i class="fa fa-trash-o"></i>
66
- {{ "Remove Repositories" | translate }}
67
- </span>
68
-
69
- </button>
70
-
71
- <button class="btn btn-default"
72
- ng-click="syncSelectedRepositories()"
73
- ng-hide="denied('sync_products', product)"
74
- ng-disabled="syncInProgress || detailsTable.numSelected == 0">
75
- <i class="fa fa-spinner fa-spin" ng-show="syncInProgress"></i>
76
- <span ng-show="syncInProgress" translate>Syncing...</span>
77
- <i ng-hide="syncInProgress" class="fa fa-refresh"></i>
78
- <span ng-hide="syncInProgress" translate>Sync Now</span>
79
- </button>
80
- <button class="btn btn-primary"
81
- bst-feature-flag="custom_products"
82
- ng-hide="denied('edit_products', product)"
83
- ng-disabled="product.redhat"
84
- ui-sref="products.details.repositories.new({productId: product.id})">
85
- <span translate>Create Repository</span>
86
- </button>
87
- </div>
88
-
89
- <span data-block="no-rows-message" translate>
90
- You currently don't have any Repositories included in this Product, you can add Repositories using the button on the right.
91
- </span>
92
-
93
- <span data-block="no-search-results-message">
94
- Your search returned zero Repositories.
95
- </span>
96
-
97
- <div data-block="table">
98
- <table bst-table="detailsTable"
99
- class="table table-striped"
100
- ng-show="detailsTable.rows.length > 0 && !detailsTable.working">
101
- <thead>
102
- <tr bst-table-head row-select>
103
- <th bst-table-column="name" translate>Name</th>
104
- <th bst-table-column="type" translate>Type</th>
105
- <th bst-table-column="sync-status" translate>Sync Status</th>
106
- <th bst-table-column="content" translate>Content</th>
107
- </tr>
108
- </thead>
109
-
110
- <tbody>
111
- <tr bst-table-row
112
- row-select="repository"
113
- ng-repeat="repository in detailsTable.rows | filter:repositorySearch">
114
- <td bst-table-cell>
115
- <a ng-href="/products/{{ product.id }}/repositories/{{ repository.id }}">{{ repository.name }}</a>
116
- </td>
117
- <td bst-table-cell>{{ repository.content_type }}</td>
118
- <td bst-table-cell>
119
- <span ng-show="repository.url">
120
- <span ng-show="repository.last_sync == null" translate>
121
- Not Synced
122
- </span>
123
- <span ng-show="repository.last_sync !== null && repository.last_sync.ended_at == null" translate>
124
- <a href="/foreman_tasks/tasks/{{repository.last_sync.id}}">{{ repository.last_sync.result | capitalize}}</a>
125
- </span>
126
- <span ng-hide="repository.last_sync == null || repository.last_sync.ended_at == null">
127
- <a href="/foreman_tasks/tasks/{{repository.last_sync.id}}">{{ repository.last_sync.result | capitalize}}</a>
128
- <span translate>{{ repository.last_sync_words }} ago</span>
129
- </span>
130
- </span>
131
- <span ng-hide="repository.url" translate>N/A</span>
132
- </td>
133
- <td bst-table-cell>
134
- <span ng-show="repository.content_type == 'puppet'">
135
- <a translate ui-sref="products.details.repositories.manage-content.puppet-modules({productId: product.id, repositoryId: repository.id})">
136
- {{ repository.content_counts.puppet_module || 0 }} Puppet Modules
137
- </a>
138
- </span>
139
-
140
- <span ng-show="repository.content_type == 'yum'">
141
- <div>
142
- <a translate ui-sref="products.details.repositories.manage-content.packages({productId: product.id, repositoryId: repository.id})">
143
- {{ repository.content_counts.rpm || 0 }} Packages
144
- </a>
145
- </div>
146
-
147
- <div>
148
- <a ui-sref="errata.index({repositoryId: repository.id})" translate>
149
- {{ repository.content_counts.erratum || 0 }} Errata
150
- </a>
151
- </div>
152
- </span>
153
-
154
- <span ng-show="repository.content_type == 'docker'">
155
- <div>
156
- <span translate>
157
- {{ repository.content_counts.docker_manifest || 0 }} Docker Manifests
158
- </span>
159
- </div>
160
- <div>
161
- <span translate>
162
- {{ repository.content_counts.docker_tag || 0 }} Docker Tags
163
- </span>
164
- </div>
165
- </span>
166
-
167
- <span ng-show="repository.content_type == 'ostree'">
168
- <div>
169
- <span translate>
170
- {{ repository.content_counts.ostree_branch || 0 }} OSTree Branches
171
- </span>
172
- </div>
173
- </span>
174
-
175
- <span ng-show="repository.content_type == 'file'">
176
- <div>
177
- <span translate>
178
- {{ repository.content_counts.file || 0 }} Files
179
- </span>
180
- </div>
181
- </span>
182
-
183
- </td>
184
- </tr>
185
- </tbody>
186
- </table>
187
- </div>
188
- </div>
189
-
190
- </section>