katello 3.1.0.1 → 3.2.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 (390) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +8 -47
  3. data/app/assets/javascripts/katello/common/index.js +0 -1
  4. data/app/assets/javascripts/katello/providers/redhat/index.js +0 -1
  5. data/app/assets/stylesheets/katello/_katello_colors.scss +0 -2
  6. data/app/assets/stylesheets/katello/katello.scss +0 -2
  7. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +45 -42
  8. data/app/controllers/katello/api/v2/activation_keys_controller.rb +7 -19
  9. data/app/controllers/katello/api/v2/api_controller.rb +3 -3
  10. data/app/controllers/katello/api/v2/capsule_content_controller.rb +3 -3
  11. data/app/controllers/katello/api/v2/content_uploads_controller.rb +2 -2
  12. data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +29 -18
  13. data/app/controllers/katello/api/v2/content_view_filters_controller.rb +2 -2
  14. data/app/controllers/katello/api/v2/content_view_histories_controller.rb +1 -1
  15. data/app/controllers/katello/api/v2/content_view_puppet_modules_controller.rb +2 -2
  16. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +10 -8
  17. data/app/controllers/katello/api/v2/content_views_controller.rb +5 -5
  18. data/app/controllers/katello/api/v2/environments_controller.rb +10 -9
  19. data/app/controllers/katello/api/v2/file_units_controller.rb +16 -0
  20. data/app/controllers/katello/api/v2/gpg_keys_controller.rb +4 -4
  21. data/app/controllers/katello/api/v2/host_autocomplete_controller.rb +2 -2
  22. data/app/controllers/katello/api/v2/host_collections_controller.rb +41 -13
  23. data/app/controllers/katello/api/v2/host_errata_controller.rb +12 -5
  24. data/app/controllers/katello/api/v2/host_packages_controller.rb +4 -4
  25. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +9 -9
  26. data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +52 -13
  27. data/app/controllers/katello/api/v2/organizations_controller.rb +3 -3
  28. data/app/controllers/katello/api/v2/packages_controller.rb +1 -1
  29. data/app/controllers/katello/api/v2/ping_controller.rb +2 -2
  30. data/app/controllers/katello/api/v2/products_bulk_actions_controller.rb +2 -2
  31. data/app/controllers/katello/api/v2/products_controller.rb +6 -16
  32. data/app/controllers/katello/api/v2/repositories_bulk_actions_controller.rb +1 -1
  33. data/app/controllers/katello/api/v2/repositories_controller.rb +60 -21
  34. data/app/controllers/katello/api/v2/repository_sets_controller.rb +3 -3
  35. data/app/controllers/katello/api/v2/root_controller.rb +2 -2
  36. data/app/controllers/katello/api/v2/subscriptions_controller.rb +19 -10
  37. data/app/controllers/katello/api/v2/sync_controller.rb +3 -3
  38. data/app/controllers/katello/api/v2/sync_plans_controller.rb +2 -2
  39. data/app/controllers/katello/api/v2/uebercerts_controller.rb +1 -1
  40. data/app/controllers/katello/application_controller.rb +7 -7
  41. data/app/controllers/katello/auto_complete_search_controller.rb +1 -1
  42. data/app/controllers/katello/concerns/api/api_controller.rb +1 -1
  43. data/app/controllers/katello/concerns/api/v2/hostgroups_controller_extensions.rb +19 -16
  44. data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +8 -6
  45. data/app/controllers/katello/concerns/authorization/api/v2/content_views_controller.rb +10 -6
  46. data/app/controllers/katello/concerns/organizations_controller_extensions.rb +1 -1
  47. data/app/controllers/katello/concerns/smart_proxies_controller_extensions.rb +1 -1
  48. data/app/controllers/katello/errors_controller.rb +2 -2
  49. data/app/controllers/katello/organizations_controller.rb +1 -1
  50. data/app/controllers/katello/products_controller.rb +4 -4
  51. data/app/controllers/katello/providers_controller.rb +2 -2
  52. data/app/helpers/katello/application_helper.rb +0 -240
  53. data/app/helpers/katello/concerns/hosts_and_hostgroups_helper_extensions.rb +19 -0
  54. data/app/lib/actions/candlepin/import_pool_handler.rb +11 -6
  55. data/app/lib/actions/katello/capsule_content/create_repos.rb +3 -3
  56. data/app/lib/actions/katello/capsule_content/sync.rb +23 -9
  57. data/app/lib/actions/katello/content_view/add_to_environment.rb +1 -1
  58. data/app/lib/actions/katello/content_view/errata_mail.rb +2 -2
  59. data/app/lib/actions/katello/content_view/incremental_updates.rb +60 -1
  60. data/app/lib/actions/katello/content_view/remove.rb +2 -2
  61. data/app/lib/actions/katello/content_view_environment/destroy.rb +1 -1
  62. data/app/lib/actions/katello/content_view_environment/reassign_objects.rb +2 -2
  63. data/app/lib/actions/katello/content_view_puppet_environment/create.rb +3 -1
  64. data/app/lib/actions/katello/host/attach_subscriptions.rb +13 -6
  65. data/app/lib/actions/katello/host/destroy.rb +0 -19
  66. data/app/lib/actions/katello/host/generate_applicability.rb +8 -3
  67. data/app/lib/actions/katello/host/hypervisors.rb +17 -9
  68. data/app/lib/actions/katello/host/hypervisors_update.rb +19 -44
  69. data/app/lib/actions/katello/host/reassign.rb +14 -0
  70. data/app/lib/actions/katello/host/register.rb +3 -22
  71. data/app/lib/actions/katello/host/remove_subscriptions.rb +15 -2
  72. data/app/lib/actions/katello/host/update.rb +0 -6
  73. data/app/lib/actions/katello/organization/destroy.rb +2 -2
  74. data/app/lib/actions/katello/product/content_destroy.rb +7 -9
  75. data/app/lib/actions/katello/product/destroy.rb +23 -7
  76. data/app/lib/actions/katello/repository/clear.rb +1 -0
  77. data/app/lib/actions/katello/repository/clone_file_content.rb +17 -0
  78. data/app/lib/actions/katello/repository/clone_to_environment.rb +2 -0
  79. data/app/lib/actions/katello/repository/clone_to_version.rb +2 -0
  80. data/app/lib/actions/katello/repository/create.rb +2 -1
  81. data/app/lib/actions/katello/repository/destroy.rb +20 -10
  82. data/app/lib/actions/katello/repository/errata_mail.rb +2 -2
  83. data/app/lib/actions/katello/repository/filtered_index_content.rb +2 -0
  84. data/app/lib/actions/katello/repository/import_upload.rb +6 -2
  85. data/app/lib/actions/katello/repository/{refresh_repostiory.rb → refresh_repository.rb} +0 -0
  86. data/app/lib/actions/katello/repository/remove_content.rb +2 -0
  87. data/app/lib/actions/katello/repository/sync.rb +8 -12
  88. data/app/lib/actions/katello/repository_set/disable_repository.rb +6 -5
  89. data/app/lib/actions/katello/repository_set/enable_repository.rb +1 -1
  90. data/app/lib/actions/katello/repository_set/scan_cdn.rb +1 -1
  91. data/app/lib/actions/pulp/abstract_async_task.rb +1 -1
  92. data/app/lib/actions/pulp/consumer/unassociate_units.rb +20 -0
  93. data/app/lib/actions/pulp/repository/copy_files.rb +11 -0
  94. data/app/lib/actions/pulp/repository/create.rb +5 -1
  95. data/app/lib/actions/pulp/repository/presenters/file_presenter.rb +1 -1
  96. data/app/lib/actions/pulp/repository/refresh.rb +4 -2
  97. data/app/lib/actions/pulp/repository/remove_file.rb +15 -0
  98. data/app/lib/actions/pulp/repository/sync.rb +3 -1
  99. data/app/lib/actions/pulp/repository_group/export.rb +1 -1
  100. data/app/lib/katello/errors.rb +1 -1
  101. data/app/lib/katello/lazy_accessor.rb +1 -1
  102. data/app/lib/katello/resources/candlepin.rb +14 -0
  103. data/app/lib/katello/util/cdn_var_substitutor.rb +5 -2
  104. data/app/lib/katello/util/model.rb +1 -2
  105. data/app/lib/katello/util/package.rb +2 -2
  106. data/app/models/katello/activation_key.rb +0 -49
  107. data/app/models/katello/authorization/content_view_version.rb +7 -0
  108. data/app/models/katello/candlepin/content.rb +15 -3
  109. data/app/models/katello/concerns/container_extensions.rb +1 -2
  110. data/app/models/katello/concerns/content_facet_host_extensions.rb +11 -1
  111. data/app/models/katello/concerns/host_managed_extensions.rb +4 -13
  112. data/app/models/katello/concerns/hostgroup_extensions.rb +0 -2
  113. data/app/models/katello/concerns/medium_extensions.rb +2 -2
  114. data/app/models/katello/concerns/organization_extensions.rb +0 -5
  115. data/app/models/katello/concerns/pulp_database_unit.rb +5 -1
  116. data/app/models/katello/concerns/smart_proxy_extensions.rb +21 -1
  117. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +1 -2
  118. data/app/models/katello/content_view.rb +12 -6
  119. data/app/models/katello/content_view_component.rb +0 -3
  120. data/app/models/katello/content_view_environment.rb +2 -2
  121. data/app/models/katello/content_view_package_filter_rule.rb +13 -0
  122. data/app/models/katello/content_view_puppet_environment.rb +2 -2
  123. data/app/models/katello/content_view_repository.rb +2 -1
  124. data/app/models/katello/content_view_version.rb +9 -2
  125. data/app/models/katello/erratum.rb +1 -5
  126. data/app/models/katello/file_unit.rb +41 -0
  127. data/app/models/katello/glue/candlepin/activation_key.rb +2 -2
  128. data/app/models/katello/glue/candlepin/pool.rb +19 -14
  129. data/app/models/katello/glue/pulp/repo.rb +44 -10
  130. data/app/models/katello/host/content_facet.rb +6 -6
  131. data/app/models/katello/host/subscription_facet.rb +6 -8
  132. data/app/models/katello/kt_environment.rb +3 -5
  133. data/app/models/katello/package_group.rb +1 -3
  134. data/app/models/katello/pool.rb +7 -2
  135. data/app/models/katello/pool_with_quantities.rb +12 -0
  136. data/app/models/katello/product.rb +6 -0
  137. data/app/models/katello/provider.rb +1 -1
  138. data/app/models/katello/puppet_module.rb +1 -2
  139. data/app/models/katello/repository.rb +7 -3
  140. data/app/models/katello/repository_file.rb +9 -0
  141. data/app/models/katello/rpm.rb +1 -1
  142. data/app/models/katello/subscription_status.rb +1 -1
  143. data/app/models/katello/sync_plan.rb +2 -1
  144. data/app/models/katello/task_status.rb +3 -36
  145. data/app/models/setting/content.rb +4 -1
  146. data/app/overrides/add_activation_keys_input.rb +2 -2
  147. data/app/presenters/katello/activation_key_subscriptions_presenter.rb +10 -0
  148. data/app/services/katello/candlepin/consumer.rb +5 -1
  149. data/app/services/katello/pulp/file_unit.rb +13 -0
  150. data/app/views/dashboard/_errata_widget.html.erb +1 -1
  151. data/app/views/dashboard/_subscription_widget.html.erb +30 -8
  152. data/app/views/foreman/job_templates/install_errata.erb +1 -1
  153. data/app/views/katello/api/v2/activation_keys/product_content.json.rabl +1 -0
  154. data/app/views/katello/api/v2/capsule_content/sync_status.json.rabl +2 -2
  155. data/app/views/katello/api/v2/content_facet/base.json.rabl +2 -4
  156. data/app/views/katello/api/v2/{systems → content_facet}/erratum.json.rabl +0 -0
  157. data/app/views/katello/api/v2/content_facet/show.json.rabl +1 -1
  158. data/app/views/katello/api/v2/content_view_versions/base.json.rabl +5 -4
  159. data/app/views/katello/api/v2/environments/show.json.rabl +1 -1
  160. data/app/views/katello/api/v2/file_units/base.json.rabl +7 -0
  161. data/app/views/katello/api/v2/{systems → file_units}/index.json.rabl +1 -1
  162. data/app/views/katello/api/v2/file_units/show.json.rabl +3 -0
  163. data/app/views/katello/api/v2/host_errata/index.json.rabl +1 -1
  164. data/app/views/katello/api/v2/host_errata/show.json.rabl +1 -1
  165. data/app/views/katello/api/v2/package_groups/base.json.rabl +1 -1
  166. data/app/views/katello/api/v2/ping/show.json.rabl +1 -1
  167. data/app/views/katello/api/v2/repositories/base.json.rabl +2 -1
  168. data/app/views/katello/api/v2/repositories/show.json.rabl +1 -1
  169. data/app/views/katello/api/v2/subscription_facet/base.json.rabl +1 -1
  170. data/app/views/katello/api/v2/subscription_facet/base_with_root.json.rabl +0 -4
  171. data/app/views/katello/api/v2/subscription_facet/show.json.rabl +1 -5
  172. data/app/views/katello/api/v2/subscriptions/base.json.rabl +3 -3
  173. data/app/views/katello/api/v2/subscriptions/index.json.rabl +1 -0
  174. data/app/views/katello/api/v2/tasks/task_status_show.json.rabl +0 -1
  175. data/app/views/katello/providers/redhat/show.html.erb +1 -1
  176. data/app/views/katello/sync_management/_products.html.erb +5 -1
  177. data/app/views/overrides/activation_keys/_host_environment_select.html.erb +1 -9
  178. data/app/views/overrides/activation_keys/_host_synced_content_select.html.erb +1 -0
  179. data/config/routes/api/v2.rb +9 -2
  180. data/config/routes/overrides.rb +9 -0
  181. data/db/migrate/20150930183738_migrate_content_hosts.rb +1 -1
  182. data/db/migrate/20160617124149_remove_duplicate_view_filters.rb +38 -0
  183. data/db/migrate/20160627125310_delete_system.rb +7 -0
  184. data/db/migrate/20160722193256_add_verify_ssl_on_sync_to_repository.rb +9 -0
  185. data/db/migrate/20160727144242_add_registered_through_to_katello_subscription_facets.rb +5 -0
  186. data/db/migrate/20160808002834_add_files.rb +30 -0
  187. data/db/migrate/20160906181923_add_puppet_path_to_smart_proxy.rb +5 -0
  188. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.module.js +1 -0
  189. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-associations.controller.js +7 -6
  190. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-add-subscriptions.html +6 -2
  191. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-associations-content-hosts.html +4 -0
  192. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-details.html +101 -102
  193. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-subscriptions-list.html +3 -0
  194. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html +82 -83
  195. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/views/activation-keys.html +4 -0
  196. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion-katello-bootstrap.js +1 -0
  197. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/capsule-content/capsule-content.module.js +3 -1
  198. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/capsules/capsules.module.js +4 -1
  199. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/common.module.js +2 -0
  200. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/views/registration.html +1 -0
  201. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-action-subscriptions.controller.js +46 -72
  202. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-action.controller.js +1 -2
  203. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions-errata.html +5 -0
  204. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions-host-collections.html +5 -0
  205. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions-subscriptions.html +79 -33
  206. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.module.js +1 -0
  207. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-errata.controller.js +10 -0
  208. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html +27 -15
  209. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages.html +57 -45
  210. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-add-subscriptions.controller.js +5 -18
  211. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-base-subscriptions.controller.js +2 -3
  212. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +2 -1
  213. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-subscriptions.controller.js +3 -3
  214. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-add-subscriptions.html +4 -0
  215. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-details.html +117 -118
  216. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +13 -8
  217. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-subscriptions-list.html +5 -0
  218. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +5 -0
  219. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.module.js +1 -0
  220. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.routes.js +26 -0
  221. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-content-hosts.controller.js +11 -4
  222. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-environments.controller.js +1 -1
  223. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion.controller.js +1 -1
  224. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/content-view-deletion.html +3 -3
  225. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-content-hosts.html +2 -2
  226. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-environments.html +2 -2
  227. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-file-repositories.controller.js +47 -0
  228. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-details.controller.js +8 -0
  229. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-file-repositories-list.controller.js +45 -0
  230. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/errata-filter-details.html +4 -0
  231. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filters.html +3 -0
  232. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-filter-details.html +6 -6
  233. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/views/content-view-puppet-module-names.html +6 -0
  234. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/views/content-view-puppet-modules.html +4 -0
  235. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-composite-available-content-views.html +2 -1
  236. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-composite-content-views-list.html +2 -1
  237. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-details.html +151 -140
  238. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-docker-repositories.html +1 -1
  239. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-file-repositories.html +118 -0
  240. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-ostree-repositories.html +1 -1
  241. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-repositories.html +1 -1
  242. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-versions.html +13 -2
  243. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version-content.controller.js +8 -0
  244. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-versions.module.js +1 -0
  245. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-details.html +8 -6
  246. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-file.html +22 -0
  247. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version.html +6 -16
  248. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/views/content-views.html +4 -0
  249. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-manifests/docker-manifests.module.js +6 -1
  250. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tags-details.html +59 -61
  251. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.module.js +3 -0
  252. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/views/docker-tags.html +4 -0
  253. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-content-views.html +5 -0
  254. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-docker.html +4 -0
  255. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-errata.html +4 -0
  256. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-ostree.html +4 -0
  257. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-packages.html +4 -0
  258. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-puppet-modules.html +4 -0
  259. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-repositories.html +4 -0
  260. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.module.js +1 -0
  261. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/errata-content-hosts.controller.js +1 -1
  262. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/errata-details-content-hosts.html +6 -2
  263. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/errata-details-repositories.html +4 -0
  264. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/errata-details.html +44 -45
  265. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata.module.js +2 -0
  266. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata.html +5 -0
  267. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/gpg-key-details-info.controller.js +11 -0
  268. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/gpg-key-details.controller.js +1 -1
  269. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-details.html +52 -48
  270. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-info.html +1 -0
  271. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-products.html +1 -1
  272. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-repositories.html +1 -1
  273. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/gpg-keys.module.js +1 -0
  274. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/new/views/gpg-key-new.html +62 -63
  275. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/views/gpg-keys.html +6 -3
  276. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-add-hosts.html +4 -0
  277. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-details.html +85 -86
  278. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-hosts-list.html +4 -0
  279. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collections.module.js +1 -0
  280. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/new/views/host-collection-new.html +16 -17
  281. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/views/host-collections.html +5 -0
  282. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-bulk-action.factory.js +28 -0
  283. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-erratum.factory.js +1 -0
  284. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host.factory.js +1 -27
  285. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/hosts.module.js +3 -1
  286. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/organization.factory.js +0 -1
  287. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/organizations.module.js +4 -1
  288. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/ostree-branches-details-repositories.controller.js +60 -0
  289. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/ostree-branches-details.controller.js +31 -0
  290. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branches-details-info.html +23 -0
  291. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branches-details-repositories.html +83 -0
  292. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branches-details.html +43 -0
  293. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/ostree-branches.controller.js +67 -0
  294. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/ostree-branches.module.js +5 -1
  295. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/ostree-branches.routes.js +53 -0
  296. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/views/ostree-branches-table-collapsed.html +19 -0
  297. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/views/ostree-branches-table-full.html +21 -0
  298. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/views/ostree-branches.html +19 -0
  299. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/package-groups/package-groups.module.js +7 -1
  300. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/package-details.controller.js +17 -2
  301. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/packages-details-info.html +10 -0
  302. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/packages-details-repositories.html +4 -0
  303. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/packages-details.html +51 -52
  304. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/packages.module.js +3 -0
  305. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/views/packages.html +5 -0
  306. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-details.html +72 -73
  307. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-repositories.html +19 -7
  308. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-create.html +144 -145
  309. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/new/views/product-new.html +17 -18
  310. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.module.js +1 -0
  311. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products.html +4 -0
  312. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/puppet-modules-details.html +44 -40
  313. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/puppet-modules.module.js +7 -1
  314. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/views/puppet-modules.html +4 -0
  315. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repositories/details/repository-details-info.controller.js +11 -5
  316. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repositories/details/views/repository-info.html +343 -324
  317. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repositories/new/new-repository.controller.js +4 -4
  318. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repositories/new/views/repository-new.html +10 -0
  319. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repositories/repositories.module.js +1 -0
  320. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/settings/settings.module.js +2 -0
  321. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/subscription-associations-content-hosts.html +2 -2
  322. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/subscription-details.html +46 -47
  323. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/manifest-import.controller.js +10 -0
  324. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/views/manifest-import.html +1 -0
  325. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/views/manifest.html +41 -42
  326. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/subscriptions-helper.service.js +15 -1
  327. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/subscriptions.module.js +1 -0
  328. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscriptions.html +4 -0
  329. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-details.html +54 -55
  330. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/sync-plans.module.js +1 -0
  331. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/views/sync-plans.html +4 -0
  332. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/tasks.module.js +3 -1
  333. data/engines/bastion_katello/lib/bastion_katello/engine.rb +1 -0
  334. data/lib/katello/engine.rb +11 -1
  335. data/lib/katello/permissions/host_permissions.rb +13 -1
  336. data/lib/katello/plugin.rb +20 -1
  337. data/lib/katello/tasks/reimport.rake +1 -0
  338. data/lib/katello/tasks/test.rake +8 -0
  339. data/lib/katello/tasks/unify_hosts.rake +91 -0
  340. data/lib/katello/tasks/upgrade_check.rake +3 -2
  341. data/lib/katello/tasks/upgrades/3.0/update_subscription_facet_backend_data.rake +2 -4
  342. data/lib/katello/version.rb +1 -1
  343. data/lib/proxy_api/pulp.rb +7 -0
  344. data/lib/proxy_api/pulp_node.rb +7 -0
  345. metadata +79 -67
  346. data/app/assets/javascripts/katello/common/jquery.jeditable.custominputs.js +0 -180
  347. data/app/assets/javascripts/katello/widgets/jquery.jeditable.helpers.js +0 -247
  348. data/app/assets/stylesheets/katello/widgets/_scrollpane.scss +0 -66
  349. data/app/controllers/katello/api/v2/systems_controller.rb +0 -213
  350. data/app/helpers/katello/activation_keys_helper.rb +0 -4
  351. data/app/helpers/katello/host_collection_events_helper.rb +0 -7
  352. data/app/helpers/katello/katello_form_builder.rb +0 -150
  353. data/app/helpers/katello/packages_helper.rb +0 -67
  354. data/app/helpers/katello/subscriptions_helper.rb +0 -32
  355. data/app/helpers/katello/system_events_helper.rb +0 -4
  356. data/app/helpers/katello/system_packages_helper.rb +0 -42
  357. data/app/lib/actions/katello/repository/incremental_import.rb +0 -61
  358. data/app/lib/actions/katello/subscription/subscribe.rb +0 -26
  359. data/app/lib/actions/katello/system/destroy.rb +0 -17
  360. data/app/lib/actions/katello/system/reassign.rb +0 -14
  361. data/app/models/katello/authorization/system.rb +0 -53
  362. data/app/models/katello/glue/candlepin/consumer.rb +0 -386
  363. data/app/models/katello/glue/pulp/consumer.rb +0 -171
  364. data/app/models/katello/hypervisor.rb +0 -15
  365. data/app/models/katello/system.rb +0 -283
  366. data/app/models/katello/system_activation_key.rb +0 -8
  367. data/app/models/katello/system_repository.rb +0 -8
  368. data/app/presenters/katello/activation_key_subscription_presenter.rb +0 -10
  369. data/app/views/katello/api/v2/errata/_applicable_errata.json.rabl +0 -3
  370. data/app/views/katello/api/v2/subscriptions/create.json.rabl +0 -3
  371. data/app/views/katello/api/v2/systems/_pool.json.rabl +0 -6
  372. data/app/views/katello/api/v2/systems/activate.json.rabl +0 -3
  373. data/app/views/katello/api/v2/systems/add_host_collections.json.rabl +0 -3
  374. data/app/views/katello/api/v2/systems/available_host_collections.json.rabl +0 -5
  375. data/app/views/katello/api/v2/systems/base.json.rabl +0 -35
  376. data/app/views/katello/api/v2/systems/enabled_repos.json.rabl +0 -3
  377. data/app/views/katello/api/v2/systems/events.json.rabl +0 -3
  378. data/app/views/katello/api/v2/systems/package.json.rabl +0 -5
  379. data/app/views/katello/api/v2/systems/package_profile.json.rabl +0 -7
  380. data/app/views/katello/api/v2/systems/pools.json.rabl +0 -7
  381. data/app/views/katello/api/v2/systems/regenerate_identity_certificates.json.rabl +0 -3
  382. data/app/views/katello/api/v2/systems/remove_host_collections.json.rabl +0 -3
  383. data/app/views/katello/api/v2/systems/show.json.rabl +0 -64
  384. data/app/views/katello/api/v2/systems/subscriptions.json.rabl +0 -8
  385. data/app/views/katello/api/v2/systems/upload_package_profile.json.rabl +0 -3
  386. data/db/seeds.d/105-roles_permissions.rb +0 -71
  387. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-host.factory.js +0 -25
  388. data/lib/katello/permissions/content_host_permissions.rb +0 -30
  389. data/lib/katello/tasks/yard.rake +0 -9
  390. data/vendor/assets/stylesheets/katello/jquery.jscrollpane.css +0 -120
@@ -129,6 +129,13 @@ angular.module('Bastion.content-views').config(['$stateProvider', function ($sta
129
129
  controller: 'ContentViewVersionContentController',
130
130
  templateUrl: 'content-views/versions/views/content-view-version-ostree-branches.html'
131
131
  })
132
+ .state('content-views.details.version.file', {
133
+ collapsed: true,
134
+ url: '/file',
135
+ permission: 'view_content_views',
136
+ controller: 'ContentViewVersionContentController',
137
+ templateUrl: 'content-views/versions/views/content-view-version-file.html'
138
+ })
132
139
 
133
140
  .state('content-views.details.promotion', {
134
141
  collapsed: true,
@@ -202,6 +209,25 @@ angular.module('Bastion.content-views').config(['$stateProvider', function ($sta
202
209
  controller: 'ContentViewAvailableRepositoriesController',
203
210
  templateUrl: 'content-views/details/views/content-view-repositories.html'
204
211
  })
212
+ .state('content-views.details.repositories.file', {
213
+ abstract: true,
214
+ collapsed: true,
215
+ template: '<div ui-view></div>'
216
+ })
217
+ .state('content-views.details.repositories.file.list', {
218
+ collapsed: true,
219
+ url: '/repositories/file',
220
+ permission: 'view_content_views',
221
+ controller: 'ContentViewFileRepositoriesListController',
222
+ templateUrl: 'content-views/details/views/content-view-file-repositories.html'
223
+ })
224
+ .state('content-views.details.repositories.file.available', {
225
+ collapsed: true,
226
+ url: '/repositories/file/available',
227
+ permission: 'view_content_views',
228
+ controller: 'ContentViewAvailableFileRepositoriesController',
229
+ templateUrl: 'content-views/details/views/content-view-file-repositories.html'
230
+ })
205
231
  .state('content-views.details.repositories.docker', {
206
232
  abstract: true,
207
233
  collapsed: true,
@@ -14,8 +14,8 @@
14
14
  * as part of content view version deletion.
15
15
  */
16
16
  angular.module('Bastion.content-views').controller('ContentViewVersionDeletionContentHostsController',
17
- ['$scope', '$location', 'Organization', 'CurrentOrganization', 'Nutupane', 'ContentHost',
18
- function ($scope, $location, Organization, CurrentOrganization, Nutupane, ContentHost) {
17
+ ['$scope', '$location', 'Organization', 'CurrentOrganization', 'Nutupane', 'Host',
18
+ function ($scope, $location, Organization, CurrentOrganization, Nutupane, Host) {
19
19
 
20
20
  var params, nutupane;
21
21
 
@@ -26,10 +26,17 @@ angular.module('Bastion.content-views').controller('ContentViewVersionDeletionCo
26
26
  'sort_by': 'name',
27
27
  'sort_order': 'ASC'
28
28
  };
29
- nutupane = new Nutupane(ContentHost, params);
29
+ nutupane = new Nutupane(Host, params);
30
30
 
31
31
  nutupane.searchTransform = function (term) {
32
- var addition = "(environment_id:(" + $scope.selectedEnvironmentIds().join(" OR ") + "))";
32
+ var addition,
33
+ envIdClausses = [];
34
+
35
+ angular.forEach($scope.selectedEnvironmentIds(), function(envId) {
36
+ envIdClausses.push("lifecycle_environment_id = " + envId);
37
+ });
38
+ addition = '(' + envIdClausses.join(" OR ") + ')';
39
+ addition = addition + " AND content_view_id = " + $scope.contentView.id;
33
40
  if (term === "" || angular.isUndefined(term)) {
34
41
  return addition;
35
42
  }
@@ -20,7 +20,7 @@ angular.module('Bastion.content-views').controller('ContentViewVersionDeletionEn
20
20
  } else {
21
21
  angular.forEach($scope.environmentsTable.rows, function (row) {
22
22
  row.unselectable = !row.permissions['promotable_or_removable'] ||
23
- !row.permissions['all_systems_editable'] ||
23
+ !row.permissions['all_hosts_editable'] ||
24
24
  !row.permissions['all_keys_editable'];
25
25
  });
26
26
 
@@ -111,7 +111,7 @@ angular.module('Bastion.content-views').controller('ContentViewVersionDeletionCo
111
111
 
112
112
  $scope.totalHostCount = function () {
113
113
  return _.reduce($scope.deleteOptions.environments, function (sum, env) {
114
- return sum + env['system_count'];
114
+ return sum + env['host_count'];
115
115
  }, 0);
116
116
  };
117
117
 
@@ -1,7 +1,7 @@
1
1
  <span page-title ng-model="contentView">{{ 'Remove Content View ' | translate }} {{ contentView.name }}</span>
2
2
 
3
3
  <div>
4
- <h3 translate>Delete {{ contentView.name }}</h3>
4
+ <h3 translate>Remove {{ contentView.name }}</h3>
5
5
 
6
6
  <div ng-show="conflictingVersions().length > 0">
7
7
  <i class="fa fa-warning"></i>
@@ -38,7 +38,7 @@
38
38
 
39
39
  <div class="details" ng-show="conflictingVersions().length === 0">
40
40
  <p translate>
41
- Are you sure you want to delete Content View "{{ contentView.name }}"?
41
+ Are you sure you want to remove Content View "{{ contentView.name }}"?
42
42
  </p>
43
43
 
44
44
  <div ng-show="versions.length > 0">
@@ -52,7 +52,7 @@
52
52
  <div class="fr">
53
53
  <button ng-disabled="working" class="btn-danger btn-lg" ng-click="delete()" >
54
54
  <i class="fa fa-spinner fa-spin" ng-show="working"></i>
55
- <span translate>Delete</span>
55
+ <span translate>Remove</span>
56
56
  </button>
57
57
 
58
58
  <a ui-sref="content-views.details.versions" ng-disabled="working" class="btn btn-default btn-lg" translate role="button">
@@ -68,7 +68,7 @@
68
68
  <thead>
69
69
  <tr bst-table-head>
70
70
  <th bst-table-column="name"><span translate>Name</span></th>
71
- <th bst-table-column="name"><span translate>Environment</span></th>
71
+ <th bst-table-column="name"><span translate>Lifecycle Environment</span></th>
72
72
  </tr>
73
73
  </thead>
74
74
 
@@ -78,7 +78,7 @@
78
78
  {{ host.name }}
79
79
  </td>
80
80
  <td bst-table-cell>
81
- {{ host.environment.name }}
81
+ {{ host.content_facet_attributes.lifecycle_environment_name }}
82
82
  </td>
83
83
  </tr>
84
84
  </tbody>
@@ -27,7 +27,7 @@
27
27
  <thead>
28
28
  <tr bst-table-head row-select>
29
29
  <th translate>Name</th>
30
- <th translate>Affected Systems</th>
30
+ <th translate>Affected Hosts</th>
31
31
  <th translate>Affected Activation Keys</th>
32
32
  </tr>
33
33
  </thead>
@@ -41,7 +41,7 @@
41
41
  row-select="environment"
42
42
  ng-repeat="environment in environmentsTable.rows">
43
43
  <td>{{ environment.name }}</td>
44
- <td>{{ environment.system_count }} <span class="note warning" ng-hide="environment.permissions.all_systems_editable" translate> (Not all Content Hosts editable )</span></td>
44
+ <td>{{ environment.host_count }} <span class="note warning" ng-hide="environment.permissions.all_hosts_editable" translate> (Not all Content Hosts editable )</span></td>
45
45
  <td>{{ environment.activation_key_count }} <span class="note warning" ng-hide="environment.permissions.all_keys_editable" translate> (Not all Activation Keys editable )</span></td>
46
46
  </tr>
47
47
  </tbody>
@@ -0,0 +1,47 @@
1
+ (function () {
2
+
3
+ /**
4
+ * @ngdoc object
5
+ * @name Bastion.content-views.controller:ContentViewAvailableFileRepositoriesController
6
+ *
7
+ * @requires $scope
8
+ * @requires Repository
9
+ * @requires Nutupane
10
+ * @requires CurrentOrganization
11
+ * @requires ContentViewRepositoriesUtil
12
+ *
13
+ * @description
14
+ * Provides UI functionality add file repositories to a content view
15
+ */
16
+ function ContentViewAvailableFileRepositoriesController($scope, Repository, Nutupane, CurrentOrganization, ContentViewRepositoriesUtil) {
17
+ var nutupane;
18
+
19
+ ContentViewRepositoriesUtil($scope);
20
+
21
+ nutupane = new Nutupane(Repository, {
22
+ 'organization_id': CurrentOrganization,
23
+ 'library': true,
24
+ 'content_type': 'file',
25
+ 'content_view_id': $scope.$stateParams.contentViewId,
26
+ 'available_for': 'content_view'
27
+ },
28
+ 'queryUnpaged');
29
+
30
+ nutupane.load();
31
+
32
+ $scope.repositoriesTable = nutupane.table;
33
+
34
+ $scope.addRepositories = function (contentView) {
35
+ $scope.addSelectedRepositoriesToContentView(nutupane, contentView);
36
+ };
37
+ }
38
+
39
+ angular
40
+ .module('Bastion.content-views')
41
+ .controller('ContentViewAvailableFileRepositoriesController', ContentViewAvailableFileRepositoriesController);
42
+
43
+ ContentViewAvailableFileRepositoriesController.$inject = [
44
+ '$scope', 'Repository', 'Nutupane', 'CurrentOrganization', 'ContentViewRepositoriesUtil'
45
+ ];
46
+
47
+ })();
@@ -18,7 +18,13 @@ angular.module('Bastion.content-views').controller('ContentViewDetailsController
18
18
  function ($scope, ContentView, ContentViewVersion, Nutupane, AggregateTask, translate, ApiErrorHandler) {
19
19
  var nutupane, contentViewId = $scope.$stateParams.contentViewId;
20
20
 
21
+ $scope.panel = {
22
+ error: false,
23
+ loading: true
24
+ };
25
+
21
26
  if ($scope.contentView) {
27
+ $scope.panel.loading = false;
22
28
  contentViewId = $scope.contentView.id;
23
29
  }
24
30
 
@@ -124,8 +130,10 @@ angular.module('Bastion.content-views').controller('ContentViewDetailsController
124
130
  };
125
131
 
126
132
  $scope.contentView = ContentView.get({id: $scope.$stateParams.contentViewId}, function () {
133
+ $scope.panel.loading = false;
127
134
  $scope.loading = false;
128
135
  }, function (response) {
136
+ $scope.panel.loading = false;
129
137
  $scope.loading = false;
130
138
  ApiErrorHandler.handleGETRequestErrors(response, $scope);
131
139
  });
@@ -0,0 +1,45 @@
1
+ (function () {
2
+
3
+ /**
4
+ * @ngdoc object
5
+ * @name Bastion.content-views.controller:ContentViewFileRepositoriesListController
6
+ *
7
+ * @requires $scope
8
+ * @requires Repository
9
+ * @requires Nutupane
10
+ * @requires CurrentOrganization
11
+ * @requires ContentViewRepositoriesUtil
12
+ *
13
+ * @description
14
+ * Provides UI functionality list/remove file repositories from a content view
15
+ */
16
+ function ContentViewFileRepositoriesListController($scope, Repository, Nutupane, CurrentOrganization, ContentViewRepositoriesUtil) {
17
+ var nutupane;
18
+
19
+ ContentViewRepositoriesUtil($scope);
20
+
21
+ nutupane = new Nutupane(Repository, {
22
+ 'organization_id': CurrentOrganization,
23
+ 'content_view_id': $scope.$stateParams.contentViewId,
24
+ 'content_type': 'file'
25
+ },
26
+ 'queryUnpaged');
27
+
28
+ nutupane.load();
29
+
30
+ $scope.repositoriesTable = nutupane.table;
31
+
32
+ $scope.removeRepositories = function () {
33
+ $scope.removeSelectedRepositoriesFromContentView(nutupane, $scope.contentView);
34
+ };
35
+ }
36
+
37
+ angular
38
+ .module('Bastion.content-views')
39
+ .controller('ContentViewFileRepositoriesListController', ContentViewFileRepositoriesListController);
40
+
41
+ ContentViewFileRepositoriesListController.$inject = [
42
+ '$scope', 'Repository', 'Nutupane', 'CurrentOrganization', 'ContentViewRepositoriesUtil'
43
+ ];
44
+
45
+ })();
@@ -9,6 +9,10 @@
9
9
  <div data-block="header"></div>
10
10
  <span data-block="no-rows-message" translate>No Errata to display</span>
11
11
 
12
+ <span data-block="no-search-results-message">
13
+ Your search returned zero Errata.
14
+ </span>
15
+
12
16
  <div data-block="actions">
13
17
  <button class="btn btn-primary fr"
14
18
  ng-show="isState('content-views.details.filters.details.erratum.list') && permitted('edit_content_views', contentView)"
@@ -28,6 +28,9 @@
28
28
  You currently don't have any Filters included in this Content View, you can add a new Filter by using the button on the right.
29
29
  </span>
30
30
 
31
+ <span data-block="no-search-results-message">
32
+ Your search returned zero Filters.
33
+ </span>
31
34
 
32
35
  <div data-block="table">
33
36
  <table class="table table-striped table-bordered" ng-show="detailsTable.rows.length > 0"
@@ -70,7 +70,7 @@
70
70
  </span>
71
71
 
72
72
  <span ng-show="rule.type === 'greater' || rule.type === 'less' || rule.type === 'range'">
73
- <span class="col-sm-2">
73
+ <span class="col-sm-5">
74
74
  <input type="text"
75
75
  class="form-control"
76
76
  ng-model="rule.min_version"
@@ -78,7 +78,7 @@
78
78
  ng-disabled="rule.type === 'less'"/>
79
79
  </span>
80
80
  <span class="fl">-</span>
81
- <span class="col-sm-2">
81
+ <span class="col-sm-5">
82
82
  <input type="text"
83
83
  class="form-control"
84
84
  ng-model="rule.max_version"
@@ -88,7 +88,7 @@
88
88
  </span>
89
89
 
90
90
  <span ng-show="rule.type === 'equal'">
91
- <span class="col-sm-4">
91
+ <span class="col-sm-5">
92
92
  <input type="text" class="form-control"
93
93
  ng-model="rule.version"
94
94
  ng-hide="denied('edit_content_views', contentView)"/>
@@ -135,7 +135,7 @@
135
135
  </span>
136
136
 
137
137
  <span ng-show="rule.type === 'greater' || rule.type === 'less' || rule.type === 'range'">
138
- <span class="col-sm-2">
138
+ <span class="col-sm-5">
139
139
  <input type="text"
140
140
  class="form-control"
141
141
  ng-model="rule.min_version"
@@ -143,7 +143,7 @@
143
143
  ng-disabled="rule.type === 'less'"/>
144
144
  </span>
145
145
  <span class="fl" ng-show="rule.type === 'range' && rule.editMode">-</span>
146
- <span class="col-sm-2">
146
+ <span class="col-sm-5">
147
147
  <input type="text"
148
148
  class="form-control"
149
149
  ng-model="rule.max_version"
@@ -153,7 +153,7 @@
153
153
  </span>
154
154
 
155
155
  <span ng-show="rule.type === 'equal'">
156
- <span class="col-sm-4">
156
+ <span class="col-sm-5">
157
157
  <input type="text"
158
158
  class="form-control"
159
159
  ng-model="rule.version"
@@ -40,6 +40,12 @@
40
40
 
41
41
  <span data-block="selection-summary"></span>
42
42
  <span data-block="no-rows-message" translate>No puppet modules found</span>
43
+
44
+ <span data-block="no-search-results-message">
45
+ Your search returned zero Puppet Modules.
46
+ </span>
47
+
48
+
43
49
  <div data-block="table">
44
50
  <table class="table table-striped table-bordered">
45
51
  <thead>
@@ -18,6 +18,10 @@
18
18
  You currently don't have any Puppet Modules included in this Content View, you can add Puppet Modules using the button on the right.
19
19
  </span>
20
20
 
21
+ <span data-block="no-search-results-message">
22
+ Your search returned zero Puppet Modules.
23
+ </span>
24
+
21
25
  <div data-block="table">
22
26
  <table class="table table-striped table-bordered" ng-show="detailsTable.rows.length > 0">
23
27
  <thead>
@@ -42,7 +42,8 @@
42
42
  <tbody>
43
43
  <tr bst-table-row
44
44
  ng-repeat="contentView in detailsTable.rows | filter:contentViewFilter | orderBy:'name'"
45
- row-select="contentView">
45
+ row-select="contentView"
46
+ ng-hide="contentView.versions.length === 0">
46
47
  <td bst-table-cell>{{ contentView.name }}</td>
47
48
  <td bst-table-cell>
48
49
  <select class="form-control"
@@ -36,7 +36,8 @@
36
36
 
37
37
  <tbody>
38
38
  <tr bst-table-row ng-repeat="contentViewVersion in detailsTable.rows | filter:contentViewVersionFilter | orderBy:'name'"
39
- row-select="contentViewVersion">
39
+ row-select="contentViewVersion"
40
+ ng-hide="contentViewVersions.length === 0">
40
41
  <td bst-table-cell>{{ contentViewVersion.content_view.name }}</td>
41
42
  <td bst-table-cell>
42
43
  <span bst-edit-select="contentViewVersion.id"
@@ -1,153 +1,164 @@
1
1
  <span page-title ng-model="contentView">{{ 'Content View:' | translate }} {{ contentView.name }}</span>
2
2
 
3
- <section class="nutupane-details" ng-cloak bst-container-scroll>
4
- <div ng-show="panel.error" bst-alerts success-messages="successMessages" error-messages="errorMessages"></div>
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>
5
7
 
6
- <div bst-alert="info" ng-show="pendingVersionTask">
7
- <span translate>Many Content View actions are disabled while a version task is in progress.</span>
8
- </div>
8
+ <div bst-alert="info" ng-show="pendingVersionTask">
9
+ <span translate>Many Content View actions are disabled while a version task is in progress.</span>
10
+ </div>
9
11
 
10
- <div ng-hide="panel.error">
11
- <header class="details-header row">
12
- <h2 class="col-sm-6" ng-hide="contentView.composite">{{ contentView.name }}</h2>
13
- <h2 class="col-sm-6" ng-show="contentView.composite" translate>Composite Content View {{ contentView.name }}</h2>
14
-
15
- <div class="col-sm-6">
16
- <div class="fr">
17
- <button class="btn btn-primary" ng-click="$state.go('content-views.details.publish')"
18
- ng-disabled="pendingVersionTask"
19
- ng-hide="denied('publish_content_views', contentView)">
20
- <i class="fa fa-paste"></i>
21
- <span translate>Publish New Version</span>
22
- </button>
23
-
24
- <button class="btn btn-default"
25
- ng-disabled="pendingVersionTask"
26
- ng-hide="denied('create_content_views')"
27
- ng-click="showCopy = true">
28
- <i class="fa fa-copy"></i>
29
- <span translate>Copy View</span>
30
- </button>
31
-
32
- <button class="btn btn-default" ng-click="$state.go('content-views.details.deletion')"
33
- ng-disabled="pendingVersionTask"
34
- ng-hide="denied('destroy_content_views', contentView)">
35
- <i class="fa fa-trash-o"></i>
36
- {{ "Remove View" | translate }}
37
- </button>
38
-
39
- <a class="btn btn-default" ui-sref="content-views.index">
40
- <i class="fa fa-remove"></i>
41
- <span translate>Close</span>
42
- </a>
43
- </div>
12
+ <div ng-hide="panel.error">
13
+ <header class="details-header row">
14
+ <h2 class="col-sm-6" ng-hide="contentView.composite">{{ contentView.name }}</h2>
15
+ <h2 class="col-sm-6" ng-show="contentView.composite" translate>Composite Content View {{ contentView.name }}</h2>
16
+
17
+ <div class="col-sm-6">
18
+ <div class="fr">
19
+ <button class="btn btn-primary" ng-click="$state.go('content-views.details.publish')"
20
+ ng-disabled="pendingVersionTask"
21
+ ng-hide="denied('publish_content_views', contentView)">
22
+ <i class="fa fa-paste"></i>
23
+ <span translate>Publish New Version</span>
24
+ </button>
25
+
26
+ <button class="btn btn-default"
27
+ ng-disabled="pendingVersionTask"
28
+ ng-hide="denied('create_content_views')"
29
+ ng-click="showCopy = true">
30
+ <i class="fa fa-copy"></i>
31
+ <span translate>Copy View</span>
32
+ </button>
33
+
34
+ <button class="btn btn-default" ng-click="$state.go('content-views.details.deletion')"
35
+ ng-disabled="pendingVersionTask"
36
+ ng-hide="denied('destroy_content_views', contentView)">
37
+ <i class="fa fa-trash-o"></i>
38
+ {{ "Remove View" | translate }}
39
+ </button>
40
+
41
+ <a class="btn btn-default" ui-sref="content-views.index">
42
+ <i class="fa fa-remove"></i>
43
+ <span translate>Close</span>
44
+ </a>
45
+ </div>
44
46
 
45
- </div>
46
- </header>
47
-
48
- <div ng-show="showCopy" class="fr action-pane" >
49
- <form>
50
- <h5 translate>Copy</h5>
51
- <div class="input">
52
- <div bst-alerts error-messages="copyErrorMessages"></div>
53
- <div class="info-label">
54
- <label for="copy_name" translate>New Name:</label>
55
- </div>
56
- <input ng-model="copyName"
57
- id="copy_name"
58
- name="copy_name"
59
- tabindex="1"
60
- autofocus
61
- required/>
62
- <div>
63
- <button class="btn btn-default" ng-click="copy(copyName)">
64
- <span translate>Create</span>
65
- </button>
66
- <button class="btn btn-default" ng-click="showCopy = false">
67
- <span translate>Cancel</span>
68
- </button>
69
47
  </div>
48
+ </header>
49
+
50
+ <div ng-show="showCopy" class="fr action-pane" >
51
+ <form>
52
+ <h5 translate>Copy</h5>
53
+ <div class="input">
54
+ <div bst-alerts error-messages="copyErrorMessages"></div>
55
+ <div class="info-label">
56
+ <label for="copy_name" translate>New Name:</label>
57
+ </div>
58
+ <input ng-model="copyName"
59
+ id="copy_name"
60
+ name="copy_name"
61
+ tabindex="1"
62
+ autofocus
63
+ required/>
64
+ <div>
65
+ <button class="btn btn-default" ng-click="copy(copyName)">
66
+ <span translate>Create</span>
67
+ </button>
68
+ <button class="btn btn-default" ng-click="showCopy = false">
69
+ <span translate>Cancel</span>
70
+ </button>
71
+ </div>
72
+ </div>
73
+ </form>
70
74
  </div>
71
- </form>
72
- </div>
73
-
74
- <nav>
75
- <ul class="nav nav-tabs" ng-show="contentView.$resolved">
76
- <li ng-class="{active: stateIncludes('content-views.details.version') || stateIncludes('content-views.details.versions')}">
77
- <a ui-sref="content-views.details.versions" translate>
78
- Versions
79
- </a>
80
- </li>
81
-
82
- <li ng-class="{active: stateIncludes('content-views.details.composite-content-views')}" ng-show="contentView.composite">
83
- <a ui-sref="content-views.details.composite-content-views.list" translate>
84
- Content Views
85
- </a>
86
- </li>
87
-
88
- <li class="dropdown"
89
- ng-class="{active: stateIncludes('content-views.details.repositories.yum') || stateIncludes('content-views.details.filters')}"
90
- ng-hide="contentView.composite">
91
- <a class="dropdown-toggle">
92
- <span translate>Yum Content</span>
93
- <i class="fa fa-chevron-down"></i>
94
- </a>
95
- <ul class="dropdown-menu">
96
- <li>
97
- <a ui-sref="content-views.details.repositories.yum.list" translate>
98
- Repositories
75
+
76
+ <nav>
77
+ <ul class="nav nav-tabs" ng-show="contentView.$resolved">
78
+ <li ng-class="{active: stateIncludes('content-views.details.version') || stateIncludes('content-views.details.versions')}">
79
+ <a ui-sref="content-views.details.versions" translate>
80
+ Versions
99
81
  </a>
100
82
  </li>
101
- <li>
102
- <a ui-sref="content-views.details.filters.list" translate>
103
- Filters
83
+
84
+ <li ng-class="{active: stateIncludes('content-views.details.composite-content-views')}" ng-show="contentView.composite">
85
+ <a ui-sref="content-views.details.composite-content-views.list" translate>
86
+ Content Views
87
+ </a>
88
+ </li>
89
+
90
+ <li class="dropdown"
91
+ ng-class="{active: stateIncludes('content-views.details.repositories.yum') || stateIncludes('content-views.details.filters')}"
92
+ ng-hide="contentView.composite">
93
+ <a class="dropdown-toggle">
94
+ <span translate>Yum Content</span>
95
+ <i class="fa fa-chevron-down"></i>
96
+ </a>
97
+ <ul class="dropdown-menu">
98
+ <li>
99
+ <a ui-sref="content-views.details.repositories.yum.list" translate>
100
+ Repositories
101
+ </a>
102
+ </li>
103
+ <li>
104
+ <a ui-sref="content-views.details.filters.list" translate>
105
+ Filters
106
+ </a>
107
+ </li>
108
+ </ul>
109
+ </li>
110
+
111
+ <li ng-class="{active: stateIncludes('content-views.details.repositories.file')}"
112
+ ng-hide="contentView.composite">
113
+ <a ui-sref="content-views.details.repositories.file.list" translate>
114
+ File Repositories
115
+ </a>
116
+ </li>
117
+
118
+ <li ng-class="{active: stateIncludes('content-views.details.puppet-modules')}"
119
+ ng-hide="contentView.composite">
120
+ <a ui-sref="content-views.details.puppet-modules.list" translate>
121
+ Puppet Modules
122
+ </a>
123
+ </li>
124
+
125
+ <li ng-class="{active: stateIncludes('content-views.details.repositories.docker')}"
126
+ ng-hide="contentView.composite">
127
+ <a ui-sref="content-views.details.repositories.docker.list" translate>
128
+ Docker Content
129
+ </a>
130
+ </li>
131
+
132
+ <li ng-class="{active: stateIncludes('content-views.details.repositories.ostree')}"
133
+ ng-hide="contentView.composite">
134
+ <a ui-sref="content-views.details.repositories.ostree.list" translate>
135
+ OSTree Content
136
+ </a>
137
+ </li>
138
+
139
+ <li ng-class="{active: isState('content-views.details.history')}">
140
+ <a ui-sref="content-views.details.history" translate>
141
+ History
142
+ </a>
143
+ </li>
144
+
145
+ <li ng-class="{active: isState('content-views.details.info') || isState('content-views.details.deletion')}">
146
+ <a ui-sref="content-views.details.info" translate>
147
+ Details
148
+ </a>
149
+ </li>
150
+ <li ng-class="{active: stateIncludes('content-views.details.tasks')}">
151
+ <a translate
152
+ ui-sref="content-views.details.tasks.index({contentViewId: contentView.id})">
153
+ Tasks
104
154
  </a>
105
155
  </li>
106
156
  </ul>
107
- </li>
108
-
109
- <li ng-class="{active: stateIncludes('content-views.details.puppet-modules')}"
110
- ng-hide="contentView.composite">
111
- <a ui-sref="content-views.details.puppet-modules.list" translate>
112
- Puppet Modules
113
- </a>
114
- </li>
115
-
116
- <li ng-class="{active: stateIncludes('content-views.details.repositories.docker')}"
117
- ng-hide="contentView.composite">
118
- <a ui-sref="content-views.details.repositories.docker.list" translate>
119
- Docker Content
120
- </a>
121
- </li>
122
-
123
- <li ng-class="{active: stateIncludes('content-views.details.repositories.ostree')}"
124
- ng-hide="contentView.composite">
125
- <a ui-sref="content-views.details.repositories.ostree.list" translate>
126
- OSTree Content
127
- </a>
128
- </li>
129
-
130
- <li ng-class="{active: isState('content-views.details.history')}">
131
- <a ui-sref="content-views.details.history" translate>
132
- History
133
- </a>
134
- </li>
135
-
136
- <li ng-class="{active: isState('content-views.details.info') || isState('content-views.details.deletion')}">
137
- <a ui-sref="content-views.details.info" translate>
138
- Details
139
- </a>
140
- </li>
141
- <li ng-class="{active: stateIncludes('content-views.details.tasks')}">
142
- <a translate
143
- ui-sref="content-views.details.tasks.index({contentViewId: contentView.id})">
144
- Tasks
145
- </a>
146
- </li>
147
- </ul>
148
- </nav>
149
-
150
- <div bst-alerts success-messages="successMessages" error-messages="errorMessages"></div>
151
- <div ui-view></div>
157
+ </nav>
158
+
159
+ <div bst-alerts success-messages="successMessages" error-messages="errorMessages"></div>
160
+ <div ui-view></div>
161
+ </div>
162
+ </section>
152
163
  </div>
153
- </section>
164
+ </div>