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
@@ -30,23 +30,23 @@ angular.module('Bastion.activation-keys').controller('ActivationKeyAddSubscripti
30
30
  };
31
31
 
32
32
  $scope.contentNutupane = new Nutupane(Subscription, params);
33
- $scope.detailsTable = $scope.contentNutupane.table;
33
+ $scope.table = $scope.contentNutupane.table;
34
34
  $scope.isAdding = false;
35
35
  $scope.contentNutupane.setSearchKey('subscriptionSearch');
36
36
  $scope.contentNutupane.masterOnly = true;
37
37
 
38
38
  $scope.groupedSubscriptions = {};
39
- $scope.$watch('detailsTable.rows', function (rows) {
39
+ $scope.$watch('table.rows', function (rows) {
40
40
  $scope.groupedSubscriptions = SubscriptionsHelper.groupByProductName(rows);
41
41
  });
42
42
 
43
43
  $scope.disableAddButton = function () {
44
- return $scope.detailsTable.numSelected === 0 || $scope.isAdding;
44
+ return $scope.table.numSelected === 0 || $scope.isAdding;
45
45
  };
46
46
 
47
47
  $scope.addSelected = function () {
48
48
  var selected;
49
- selected = SubscriptionsHelper.getSelectedSubscriptionAmounts($scope.detailsTable);
49
+ selected = SubscriptionsHelper.getSelectedSubscriptionAmounts($scope.table);
50
50
 
51
51
  $scope.isAdding = true;
52
52
  ActivationKey.addSubscriptions({id: $scope.activationKey.id, 'subscriptions': selected}, function () {
@@ -39,11 +39,11 @@ angular.module('Bastion.activation-keys').controller('ActivationKeyAssociationsC
39
39
  contentHostsNutupane.masterOnly = true;
40
40
  contentHostsNutupane.setSearchKey('contentHostSearch');
41
41
 
42
- $scope.detailsTable = contentHostsNutupane.table;
43
- $scope.detailsTable.working = true;
42
+ $scope.table = contentHostsNutupane.table;
43
+ $scope.table.working = true;
44
44
 
45
45
  if ($scope.contentHosts) {
46
- $scope.detailsTable.working = false;
46
+ $scope.table.working = false;
47
47
  }
48
48
 
49
49
  $scope.activationKey.$promise.then(function () {
@@ -0,0 +1,30 @@
1
+ (function () {
2
+ 'use strict';
3
+
4
+ /**
5
+ * @ngdoc controller
6
+ * @name Bastion.activation-keys.controller:ActivationKeyCopyController
7
+ *
8
+ * @description
9
+ * For copying a host collection.
10
+ */
11
+ function ActivationKeyCopyController($scope, ActivationKey) {
12
+ $scope.successMessages = [];
13
+ $scope.errorMessages = [];
14
+
15
+ $scope.copy = function (newName) {
16
+ ActivationKey.copy({id: $scope.activationKey.id, 'new_name': newName}, function (response) {
17
+ $scope.transitionTo('activation-key.info', {activationKeyId: response.id});
18
+ }, function (response) {
19
+ $scope.copyErrorMessages.push(response.data.displayMessage);
20
+ });
21
+ };
22
+ }
23
+
24
+ angular
25
+ .module('Bastion.activation-keys')
26
+ .controller('ActivationKeyCopyController', ActivationKeyCopyController);
27
+
28
+ ActivationKeyCopyController.$inject = ['$scope', 'ActivationKey'];
29
+
30
+ })();
@@ -44,7 +44,6 @@ angular.module('Bastion.activation-keys').controller('ActivationKeyDetailsContro
44
44
  activationKey.$update(function (response) {
45
45
  deferred.resolve(response);
46
46
  $scope.successMessages.push(translate('Activation Key updated'));
47
- $scope.table.replaceRow(response);
48
47
  }, function (response) {
49
48
  deferred.reject(response);
50
49
  $scope.errorMessages.push(translate("An error occurred saving the Activation Key: ") + response.data.displayMessage);
@@ -56,22 +55,9 @@ angular.module('Bastion.activation-keys').controller('ActivationKeyDetailsContro
56
55
  $scope.activationKey = activationKey;
57
56
  };
58
57
 
59
- $scope.copy = function (newName) {
60
- ActivationKey.copy({id: $scope.activationKey.id, 'new_name': newName}, function (response) {
61
- $scope.showCopy = false;
62
- $scope.table.addRow(response);
63
- $scope.transitionTo('activation-keys.details.info', {activationKeyId: response.id});
64
- }, function (response) {
65
- $scope.copyErrorMessages.push(response.data.displayMessage);
66
- });
67
- };
68
-
69
58
  $scope.removeActivationKey = function (activationKey) {
70
- var id = activationKey.id;
71
-
72
59
  activationKey.$delete(function () {
73
- $scope.removeRow(id);
74
- $scope.transitionTo('activation-keys.index');
60
+ $scope.transitionTo('activation-keys');
75
61
  GlobalNotification.setSuccessMessage(translate('Activation Key removed.'));
76
62
  }, function (response) {
77
63
  GlobalNotification.setErrorMessage(translate("An error occurred removing the Activation Key: ") + response.data.displayMessage);
@@ -29,14 +29,14 @@ angular.module('Bastion.activation-keys').controller('ActivationKeyHostCollectio
29
29
  };
30
30
 
31
31
  hostCollectionsPane = new Nutupane(ActivationKey, params, 'hostCollections');
32
- $scope.hostCollectionsTable = hostCollectionsPane.table;
32
+ $scope.table = hostCollectionsPane.table;
33
33
 
34
34
  $scope.removeHostCollections = function () {
35
35
  var data,
36
36
  success,
37
37
  error,
38
38
  deferred = $q.defer(),
39
- hostCollectionsToRemove = _.pluck($scope.hostCollectionsTable.getSelected(), 'id');
39
+ hostCollectionsToRemove = _.map($scope.table.getSelected(), 'id');
40
40
 
41
41
  data = {
42
42
  "activation_key": {
@@ -46,10 +46,10 @@ angular.module('Bastion.activation-keys').controller('ActivationKeyHostCollectio
46
46
 
47
47
  success = function (response) {
48
48
  $scope.successMessages = [translate('Removed %x host collections from activation key "%y".')
49
- .replace('%x', $scope.hostCollectionsTable.numSelected)
49
+ .replace('%x', $scope.table.numSelected)
50
50
  .replace('%y', $scope.activationKey.name)];
51
- $scope.hostCollectionsTable.working = false;
52
- $scope.hostCollectionsTable.selectAll(false);
51
+ $scope.table.working = false;
52
+ $scope.table.selectAll(false);
53
53
  hostCollectionsPane.refresh();
54
54
  $scope.activationKey.$get();
55
55
  deferred.resolve(response);
@@ -58,10 +58,10 @@ angular.module('Bastion.activation-keys').controller('ActivationKeyHostCollectio
58
58
  error = function (response) {
59
59
  deferred.reject(response.data.errors);
60
60
  $scope.errorMessages = response.data.errors;
61
- $scope.hostCollectionsTable.working = false;
61
+ $scope.table.working = false;
62
62
  };
63
63
 
64
- $scope.hostCollectionsTable.working = true;
64
+ $scope.table.working = true;
65
65
  ActivationKey.removeHostCollections({id: $scope.activationKey.id}, data, success, error);
66
66
  return deferred.promise;
67
67
  };
@@ -19,7 +19,7 @@ angular.module('Bastion.activation-keys').controller('ActivationKeyProductDetail
19
19
  if ($scope.details === null) {
20
20
  $scope.details = product;
21
21
  angular.forEach($scope.details['available_content'], function (content) {
22
- override = _.findWhere($scope.activationKey["content_overrides"],
22
+ override = _.find($scope.activationKey["content_overrides"],
23
23
  {"contentLabel": content.content.label, name: "enabled"});
24
24
  if (angular.isUndefined(override)) {
25
25
  content.overrideEnabled = null;
@@ -25,23 +25,23 @@ angular.module('Bastion.activation-keys').controller('ActivationKeySubscriptions
25
25
  };
26
26
 
27
27
  $scope.contentNutupane = new Nutupane(ActivationKey, params, "subscriptions");
28
- $scope.detailsTable = $scope.contentNutupane.table;
28
+ $scope.table = $scope.contentNutupane.table;
29
29
  $scope.contentNutupane.masterOnly = true;
30
30
  $scope.contentNutupane.setSearchKey('subscriptionSearch');
31
31
  $scope.isRemoving = false;
32
32
 
33
33
  $scope.groupedSubscriptions = {};
34
- $scope.$watch('detailsTable.rows', function (rows) {
34
+ $scope.$watch('table.rows', function (rows) {
35
35
  $scope.groupedSubscriptions = SubscriptionsHelper.groupByProductName(rows);
36
36
  });
37
37
 
38
38
  $scope.disableRemoveButton = function () {
39
- return $scope.detailsTable.numSelected === 0 || $scope.isRemoving;
39
+ return $scope.table.numSelected === 0 || $scope.isRemoving;
40
40
  };
41
41
 
42
42
  $scope.removeSelected = function () {
43
43
  var selected;
44
- selected = SubscriptionsHelper.getSelectedSubscriptionAmounts($scope.detailsTable);
44
+ selected = SubscriptionsHelper.getSelectedSubscriptionAmounts($scope.table);
45
45
 
46
46
  $scope.isRemoving = true;
47
47
  ActivationKey.removeSubscriptions({id: $scope.activationKey.id, 'subscriptions': selected}, function () {
@@ -1,11 +1,8 @@
1
1
  <span page-title ng-model="activationKey">{{ 'Add Subscriptions for Activation Key:' | translate }} {{ activationKey.name }}</span>
2
2
 
3
- <div data-extend-template="layouts/details-nutupane.html">
4
-
5
- <div data-block="messages"></div>
6
-
7
- <div data-block="actions">
8
- <div ng-hide="denied('edit_activation_keys', activationKey)" class="nutupane-actions fr">
3
+ <div data-extend-template="layouts/partials/table.html">
4
+ <div data-block="list-actions">
5
+ <div ng-hide="denied('edit_activation_keys', activationKey)">
9
6
  <button class="btn btn-primary"
10
7
  translate
11
8
  ng-disabled="disableAddButton()"
@@ -19,12 +16,12 @@
19
16
  You currently don't have any Products to subscribe to, you can add Products after selecting 'Products' under 'Content' in the main menu
20
17
  </span>
21
18
 
22
- <span data-block="no-search-results-message">
19
+ <span data-block="no-search-results-message" translate>
23
20
  Your search returned zero Products.
24
21
  </span>
25
22
 
26
23
  <div data-block="table">
27
- <table ng-class="{'table-mask': detailsTable.working}" class="table table-full">
24
+ <table ng-class="{'table-mask': table.working}" class="table table-full">
28
25
  <thead>
29
26
  <tr bst-table-head row-select>
30
27
  <th bst-table-column="quantity" sortable class="align-center"><span translate>Quantity</span></th>
@@ -40,11 +37,7 @@
40
37
 
41
38
  <tbody>
42
39
  <tr bst-table-row ng-repeat-start="(name, subscriptions) in groupedSubscriptions">
43
- <td class="row-select">
44
- <a href='/subscriptions/{{ subscription.id }}/info' class='confined-text'>
45
- {{ name }}
46
- </a>
47
- </td>
40
+ <td bst-table-cell class="row-select" style="white-space:nowrap">{{ name }}</td>
48
41
  <td bst-table-cell colspan="8"></td>
49
42
  </tr>
50
43
  <tr bst-table-row
@@ -63,7 +56,11 @@
63
56
  <option value="">{{ "Automatic" | translate }}</option>
64
57
  </select>
65
58
  </td>
66
- <td bst-table-cell>{{ subscription | subscriptionConsumedFilter }}</td>
59
+ <td bst-table-cell>
60
+ <a href='/subscriptions/{{ subscription.id }}/info' class="confined-text">
61
+ {{ subscription | subscriptionConsumedFilter }}
62
+ </a>
63
+ </td>
67
64
  <td bst-table-cell><div subscription-type="subscription"></div></td>
68
65
  <td bst-table-cell>{{ subscription.start_date | date:"shortDate" }}</td>
69
66
  <td bst-table-cell>{{ subscription.end_date | date:"shortDate" }}</td>
@@ -1,21 +1,16 @@
1
1
  <span page-title ng-model="activationKey">{{ 'Content Hosts for Activation Key:' | translate }} {{ activationKey.name }}</span>
2
2
 
3
- <div data-extend-template="layouts/details-nutupane.html">
4
-
5
- <div data-block="messages"></div>
6
- <div data-block="actions"></div>
7
- <div data-block="selection-summary"></div>
8
-
3
+ <div data-extend-template="layouts/partials/table.html">
9
4
  <span data-block="no-rows-message" translate>
10
5
  This activation key is not associated with any content hosts.
11
6
  </span>
12
7
 
13
- <span data-block="no-search-results-message">
8
+ <span data-block="no-search-results-message" translate>
14
9
  Your search returned zero Hosts.
15
10
  </span>
16
11
 
17
12
  <div data-block="table">
18
- <table class="table table-bordered table-striped" bst-table="table" ng-class="{'table-mask': detailsTable.working}">
13
+ <table class="table table-bordered table-striped" bst-table="table" ng-class="{'table-mask': table.working}">
19
14
  <thead>
20
15
  <tr bst-table-head>
21
16
  <th bst-table-column="name" sortable><span translate>Name</span></th>
@@ -30,10 +25,10 @@
30
25
  </thead>
31
26
 
32
27
  <tbody>
33
- <tr bst-table-row ng-repeat="host in detailsTable.rows"
28
+ <tr bst-table-row ng-repeat="host in table.rows"
34
29
  ng-controller="ContentHostStatusController">
35
30
  <td bst-table-cell>
36
- <a ui-sref="content-hosts.details.info({hostId: host.host_id})">
31
+ <a ui-sref="content-hosts.details.info({hostId: host.id})">
37
32
  {{ host.name }}
38
33
  </a>
39
34
  </td>
@@ -0,0 +1,17 @@
1
+ <h5 translate>Create a copy of {{ activationKey.name }}</h5>
2
+
3
+ <div class="row">
4
+ <div class="col-sm-4">
5
+ <form name="copyActivationKeyForm">
6
+ <div class="form-group">
7
+ <label for="copy_name" translate>New Name:</label>
8
+ <input id="copy_name" class="form-control" name="copy_name"
9
+ ng-model="copyName" tabindex="1" autofocus required/>
10
+ </div>
11
+
12
+ <button class="btn btn-default" type="submit" ng-click="copy(copyName)">
13
+ <span translate>Create</span>
14
+ </button>
15
+ </form>
16
+ </div>
17
+ </div>
@@ -1,117 +1,87 @@
1
1
  <span page-title ng-model="activationKey">{{ 'Activation Key:' | translate }} {{ activationKey.name }}</span>
2
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>
3
+ <div data-extend-template="layouts/details-page-with-breadcrumbs.html">
4
+ <header data-block="header">
5
+ <h2>{{ activationKey.name }}</h2>
6
+ </header>
7
7
 
8
- <div ng-hide="panel.error">
9
- <header class="details-header">
10
- <h2 class="pull-left" translate>Activation Key: {{ activationKey.name }}</h2>
8
+ <div data-block="item-actions">
9
+ <div class="dropdown dropdown-kebab-pf pull-right" uib-dropdown keyboard-nav bst-feature-flag="custom_products">
10
+ <button class="btn btn-link" uib-dropdown-toggle>
11
+ <span class="fa fa-ellipsis-v"></span>
12
+ </button>
11
13
 
12
- <div class="details-actions pull-right">
13
- <button class="btn btn-default"
14
- ng-click="openModal()" ng-hide="denied('destroy_activation_keys', activationKey)" translate>
15
- Remove
16
- </button>
14
+ <ul class="dropdown-menu dropdown-menu-right" uib-dropdown-menu role="menu">
15
+ <li role="menuitem" ng-hide="denied('create_activation_key')">
16
+ <a ui-sref="activation-key.copy" translate>
17
+ Copy Activation Key
18
+ </a>
19
+ </li>
17
20
 
18
- <!-- RFE copy activation key - http://projects.theforeman.org/issues/4407 -->
19
- <button class="btn btn-default"
20
- ng-click="showCopy = true"
21
- ng-hide="denied('create_activation_key')">
22
- <i class="fa fa-copy"></i>
23
- {{ "Copy Activation Key" | translate }}
24
- </button>
21
+ <li class="divider"></li>
25
22
 
26
- <button class="btn btn-default" ui-sref="activation-keys.index">
27
- <i class="fa fa-remove"></i>
28
- {{ "Close" | translate }}
29
- </button>
23
+ <li role="menuitem" ng-hide="denied('destroy_activation_keys', activationKey)">
24
+ <a ng-click="openModal()" translate>
25
+ Remove
26
+ </a>
27
+ </li>
28
+ </ul>
30
29
 
31
- <div bst-modal="removeActivationKey(activationKey)" model="activationKey">
32
- <div data-block="modal-header" translate>Remove Activation Key "{{ activationKey.name }}"?</div>
33
- <div data-block="modal-body" translate>Are you sure you want to remove Activation Key "{{ activationKey.name }}"?</div>
34
- </div>
35
- </div>
36
- </header>
37
-
38
- <div ng-show="showCopy" class="pull-right action-pane" >
39
- <form>
40
- <h5 translate>Copy</h5>
41
- <div class="input">
42
- <div bst-alerts error-messages="copyErrorMessages"></div>
43
- <div class="info-label">
44
- <label for="copy_name" translate>New Name:</label>
45
- </div>
46
- <input ng-model="copyName"
47
- id="copy_name"
48
- name="copy_name"
49
- tabindex="1"
50
- autofocus
51
- required/>
52
- <div>
53
- <button class="btn btn-default" ng-click="copy(copyName)">
54
- {{ "Create" | translate }}
55
- </button>
56
- <button class="btn btn-default" ng-click="showCopy = false">
57
- {{ "Cancel" | translate }}
58
- </button>
59
- </div>
60
- </div>
61
- </form>
62
- </div>
63
-
64
- <nav>
65
- <ul class="nav nav-tabs">
66
- <li ng-class="{active: isState('activation-keys.details.info')}">
67
- <a ui-sref="activation-keys.details.info">
68
- <span translate>
69
- Details
70
- </span>
71
- </a>
72
- </li>
73
- <li ng-class="{active: stateIncludes('activation-keys.details.subscriptions')}">
74
- <a ui-sref="activation-keys.details.subscriptions.list">
75
- <span translate>
76
- Subscriptions
77
- </span>
78
- </a>
79
- </li>
80
- <li ng-class="{active: stateIncludes('activation-keys.details.products')}">
81
- <a ui-sref="activation-keys.details.products">
82
- <span translate>
83
- Product Content
84
- </span>
85
- </a>
86
- </li>
87
- <li ng-class="{active: stateIncludes('activation-keys.details.host-collections')}">
88
- <a ui-sref="activation-keys.details.host-collections.list">
89
- <span translate>
90
- Host Collections
91
- </span>
92
- </a>
93
- </li>
94
- <li class="dropdown"
95
- ng-class="{active: stateIncludes('activation-keys.details.associations-content-hosts')}">
96
- <a class="dropdown-toggle">
97
- <span translate>Associations</span>
98
- <i class="fa fa-chevron-down"></i>
99
- </a>
100
- <ul class="dropdown-menu">
101
- <li>
102
- <a ui-sref="activation-keys.details.associations-content-hosts({activationKeyId: activationKey.id})" translate>
103
- Content Hosts
104
- </a>
105
- </li>
106
- </ul>
107
- </li>
108
- </ul>
109
- </nav>
110
-
111
- <div bst-alerts success-messages="successMessages" error-messages="errorMessages"></div>
112
-
113
- <section class="nutupane-sub-section" ui-view></section>
30
+ <div bst-modal="removeHostCollection(hostCollection)" model="hostCollection">
31
+ <div data-block="modal-header" translate>Remove Host Collection "{{ hostCollection.name }}"?</div>
32
+ <div data-block="modal-body" translate>Are you sure you want to remove Host Collection "{{ hostCollection.name }}"?</div>
114
33
  </div>
115
- </section>
34
+ </div>
116
35
  </div>
36
+
37
+ <nav data-block="navigation">
38
+ <ul class="nav nav-tabs details-nav">
39
+ <li ng-class="{active: isState('activation-key.info')}">
40
+ <a ui-sref="activation-key.info">
41
+ <span translate>
42
+ Details
43
+ </span>
44
+ </a>
45
+ </li>
46
+ <li ng-class="{active: stateIncludes('activation-key.subscriptions')}">
47
+ <a ui-sref="activation-key.subscriptions.list">
48
+ <span translate>
49
+ Subscriptions
50
+ </span>
51
+ </a>
52
+ </li>
53
+ <li ng-class="{active: stateIncludes('activation-key.products')}">
54
+ <a ui-sref="activation-key.products">
55
+ <span translate>
56
+ Product Content
57
+ </span>
58
+ </a>
59
+ </li>
60
+ <li ng-class="{active: stateIncludes('activation-key.host-collections')}">
61
+ <a ui-sref="activation-key.host-collections.list">
62
+ <span translate>
63
+ Host Collections
64
+ </span>
65
+ </a>
66
+ </li>
67
+ <li class="dropdown" uib-dropdown
68
+ ng-class="{active: stateIncludes('activation-key.associations-content-hosts')}">
69
+ <a uib-dropdown-toggle>
70
+ <span translate>Associations</span>
71
+ <i class="fa fa-chevron-down"></i>
72
+ </a>
73
+ <ul class="dropdown-menu" uib-dropdown-menu>
74
+ <li>
75
+ <a ui-sref="activation-key.associations-content-hosts({activationKeyId: activationKey.id})" translate>
76
+ Content Hosts
77
+ </a>
78
+ </li>
79
+ </ul>
80
+ </li>
81
+ </ul>
82
+ </nav>
83
+
84
+ <section data-block="content">
85
+ <div ui-view></div>
86
+ </section>
117
87
  </div>