katello 3.10.2 → 3.11.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 (242) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +16 -22
  3. data/app/controllers/katello/api/v2/content_uploads_controller.rb +4 -7
  4. data/app/controllers/katello/api/v2/content_view_puppet_modules_controller.rb +4 -5
  5. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +4 -4
  6. data/app/controllers/katello/api/v2/content_views_controller.rb +3 -3
  7. data/app/controllers/katello/api/v2/docker_manifests_controller.rb +1 -1
  8. data/app/controllers/katello/api/v2/errata_controller.rb +2 -2
  9. data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +1 -3
  10. data/app/controllers/katello/api/v2/package_groups_controller.rb +3 -3
  11. data/app/controllers/katello/api/v2/repositories_controller.rb +5 -24
  12. data/app/controllers/katello/api/v2/repository_sets_controller.rb +1 -1
  13. data/app/controllers/katello/application_controller.rb +4 -4
  14. data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +1 -1
  15. data/app/controllers/katello/sync_management_controller.rb +1 -1
  16. data/app/helpers/katello/errata_mailer_helper.rb +1 -1
  17. data/app/helpers/katello/sync_management_helper.rb +1 -1
  18. data/app/lib/actions/candlepin/environment/add_content_to_environment.rb +18 -0
  19. data/app/lib/actions/katello/content_view_puppet_environment/clone.rb +1 -4
  20. data/app/lib/actions/katello/content_view_puppet_environment/clone_content_for_version.rb +20 -0
  21. data/app/lib/actions/katello/content_view_puppet_environment/create_for_version.rb +3 -2
  22. data/app/lib/actions/katello/content_view_version/incremental_update.rb +15 -16
  23. data/app/lib/actions/katello/host/hypervisors_update.rb +17 -6
  24. data/app/lib/actions/katello/organization/manifest_delete.rb +1 -3
  25. data/app/lib/actions/katello/organization/manifest_import.rb +1 -3
  26. data/app/lib/actions/katello/organization/manifest_refresh.rb +1 -3
  27. data/app/lib/actions/katello/provider/update.rb +1 -1
  28. data/app/lib/actions/katello/repository/check_matching_content.rb +8 -2
  29. data/app/lib/actions/katello/repository/clone_contents.rb +52 -0
  30. data/app/lib/actions/katello/repository/clone_to_environment.rb +1 -11
  31. data/app/lib/actions/katello/repository/clone_to_version.rb +19 -29
  32. data/app/lib/actions/katello/repository/create.rb +3 -4
  33. data/app/lib/actions/katello/repository/export.rb +1 -2
  34. data/app/lib/actions/katello/repository/import_upload.rb +7 -5
  35. data/app/lib/actions/katello/repository/purge_empty_content.rb +16 -0
  36. data/app/lib/actions/katello/repository/remove_content.rb +2 -2
  37. data/app/lib/actions/katello/repository/sync.rb +1 -1
  38. data/app/lib/actions/pulp/content_view_puppet_environment/copy_contents.rb +36 -0
  39. data/app/lib/actions/pulp/repository/copy_all_units.rb +27 -0
  40. data/app/lib/actions/pulp/repository/copy_units.rb +29 -0
  41. data/app/lib/actions/pulp/repository/refresh.rb +3 -7
  42. data/app/lib/actions/pulp/repository/regenerate_applicability.rb +5 -2
  43. data/app/lib/katello/concerns/renderer_extensions.rb +1 -1
  44. data/app/lib/katello/http_resource.rb +5 -1
  45. data/app/lib/katello/resources/candlepin/consumer.rb +9 -0
  46. data/app/lib/katello/resources/candlepin/content.rb +2 -3
  47. data/app/lib/katello/util/cdn_var_substitutor.rb +1 -2
  48. data/app/lib/katello/util/path_with_substitutions.rb +18 -1
  49. data/app/lib/katello/validators/content_view_puppet_module_validator.rb +2 -2
  50. data/app/lib/katello/validators/environment_docker_repositories_validator.rb +7 -5
  51. data/app/models/katello/concerns/hostgroup_extensions.rb +2 -7
  52. data/app/models/katello/concerns/organization_extensions.rb +11 -1
  53. data/app/models/katello/concerns/pulp_database_unit.rb +40 -24
  54. data/app/models/katello/concerns/redhat_extensions.rb +7 -3
  55. data/app/models/katello/content_view.rb +5 -7
  56. data/app/models/katello/content_view_docker_filter.rb +3 -3
  57. data/app/models/katello/content_view_puppet_environment.rb +1 -1
  58. data/app/models/katello/content_view_puppet_module.rb +2 -3
  59. data/app/models/katello/docker_meta_tag.rb +1 -1
  60. data/app/models/katello/docker_tag.rb +4 -6
  61. data/app/models/katello/erratum.rb +1 -1
  62. data/app/models/katello/glue/pulp/repo.rb +3 -0
  63. data/app/models/katello/glue/pulp/repos.rb +4 -0
  64. data/app/models/katello/host/info_provider.rb +2 -2
  65. data/app/models/katello/host/subscription_facet.rb +0 -1
  66. data/app/models/katello/module_stream.rb +10 -4
  67. data/app/models/katello/ostree_branch.rb +4 -2
  68. data/app/models/katello/package_group.rb +2 -2
  69. data/app/models/katello/ping.rb +1 -1
  70. data/app/models/katello/puppet_module.rb +3 -3
  71. data/app/models/katello/repository.rb +15 -2
  72. data/app/models/katello/root_repository.rb +10 -0
  73. data/app/models/katello/yum_metadata_file.rb +46 -0
  74. data/app/services/katello/abstract/pulp/content.rb +19 -0
  75. data/app/services/katello/applicable_content_helper.rb +5 -5
  76. data/app/services/katello/pulp/content.rb +17 -0
  77. data/app/services/katello/pulp/repository.rb +45 -15
  78. data/app/services/katello/pulp/repository/deb.rb +8 -0
  79. data/app/services/katello/pulp/repository/docker.rb +19 -0
  80. data/app/services/katello/pulp/repository/file.rb +10 -0
  81. data/app/services/katello/pulp/repository/ostree.rb +4 -0
  82. data/app/services/katello/pulp/repository/puppet.rb +10 -0
  83. data/app/services/katello/pulp/repository/yum.rb +73 -0
  84. data/app/services/katello/pulp/yum_metadata_file.rb +7 -0
  85. data/app/services/katello/repository_type.rb +5 -0
  86. data/app/views/dashboard/_errata_widget.html.erb +1 -1
  87. data/app/views/katello/api/v2/debs/base.json.rabl +2 -1
  88. data/app/views/katello/api/v2/docker_tags/_base.json.rabl +3 -3
  89. data/app/views/katello/api/v2/errata/show.json.rabl +2 -1
  90. data/app/views/katello/api/v2/file_units/base.json.rabl +2 -1
  91. data/app/views/katello/api/v2/module_streams/base.json.rabl +2 -1
  92. data/app/views/katello/api/v2/ostree_branches/show.json.rabl +3 -2
  93. data/app/views/katello/api/v2/package_groups/base.json.rabl +2 -1
  94. data/app/views/katello/api/v2/package_groups/show.json.rabl +1 -1
  95. data/app/views/katello/api/v2/packages/base.json.rabl +2 -1
  96. data/app/views/katello/api/v2/packages/show.json.rabl +1 -1
  97. data/app/views/katello/api/v2/puppet_modules/base.json.rabl +2 -1
  98. data/app/views/katello/api/v2/puppet_modules/show.json.rabl +1 -1
  99. data/app/views/katello/api/v2/repositories/base.json.rabl +1 -0
  100. data/app/views/katello/layouts/react.html.erb +3 -3
  101. data/db/migrate/20181219205642_create_yum_metadata_file.rb +20 -0
  102. data/db/migrate/20190107160723_units_uuid_to_backend_ident.rb +8 -0
  103. data/db/seeds.d/101-locations.rb +11 -13
  104. data/db/seeds.d/102-organizations.rb +5 -3
  105. data/db/seeds.d/111-upgrade_tasks.rb +1 -1
  106. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion_katello.js +2 -0
  107. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/views/subscription-add-or-remove.html +1 -1
  108. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-subscriptions-modal.html +2 -2
  109. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.module.js +2 -1
  110. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html +2 -2
  111. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-events.html +1 -1
  112. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +2 -2
  113. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-provisioning-info.html +1 -1
  114. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +2 -2
  115. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.module.js +2 -1
  116. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/errata-filter-details.html +2 -2
  117. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filter-repositories.html +2 -2
  118. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filters.html +1 -1
  119. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/histories/views/content-view-history.html +20 -20
  120. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-deb-repositories.html +1 -1
  121. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-docker-repositories.html +1 -1
  122. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-file-repositories.html +1 -1
  123. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-ostree-repositories.html +1 -1
  124. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-repositories.html +1 -1
  125. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-versions.html +1 -1
  126. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version-content.controller.js +1 -1
  127. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-errata.html +1 -1
  128. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-ostree-branches.html +2 -0
  129. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/views/content-views.html +1 -1
  130. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/dates/dates.module.js +50 -0
  131. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-content-views.html +1 -1
  132. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-details.html +0 -1
  133. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-errata.html +2 -1
  134. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-ostree.html +2 -0
  135. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.module.js +2 -1
  136. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-info.html +2 -2
  137. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata.module.js +2 -1
  138. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata.html +1 -1
  139. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branch-info.html +3 -0
  140. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/views/products-bulk-sync-plan-modal.html +3 -3
  141. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +6 -5
  142. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-ostree-branches.html +4 -0
  143. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-info.html +5 -4
  144. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.controller.js +7 -8
  145. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/partials/product-table-sync-status.html +5 -4
  146. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/subscription-info.html +3 -3
  147. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/views/manifest-details.html +2 -2
  148. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/views/manifest-import-history.html +1 -1
  149. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscription-start-date.html +1 -1
  150. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscriptions.html +1 -1
  151. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-info.html +1 -1
  152. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/views/sync-plans.html +2 -2
  153. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/task-details.html +2 -2
  154. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/tasks-table.html +1 -1
  155. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/user-tasks-table.html +1 -1
  156. data/engines/bastion_katello/lib/bastion_katello/engine.rb +6 -1
  157. data/lib/katello/engine.rb +3 -3
  158. data/lib/katello/plugin.rb +3 -3
  159. data/lib/katello/repository_types/deb.rb +1 -0
  160. data/lib/katello/repository_types/yum.rb +1 -0
  161. data/lib/katello/tasks/reimport.rake +1 -0
  162. data/lib/katello/tasks/repository.rake +1 -1
  163. data/lib/katello/tasks/upgrades/3.11/import_yum_metadata_file.rake +12 -0
  164. data/lib/katello/version.rb +1 -1
  165. data/package.json +3 -1
  166. data/webpack/__mocks__/foremanReact/components/Pagination/PaginationWrapper.js +2 -0
  167. data/webpack/__mocks__/foremanReact/components/common/EmptyState.js +8 -0
  168. data/webpack/common_index.js +6 -0
  169. data/webpack/containers/Application/config.js +3 -3
  170. data/webpack/move_to_foreman/components/common/table/components/Table.js +3 -3
  171. data/webpack/move_to_foreman/components/common/table/components/Table.test.js +2 -0
  172. data/webpack/move_to_foreman/components/common/table/components/__snapshots__/Table.test.js.snap +1 -17
  173. data/webpack/redux/actions/RedHatRepositories/helpers.js +19 -10
  174. data/webpack/scenes/ModuleStreams/Details/Profiles/__tests__/ModuleStreamDetailProfiles.test.js +2 -0
  175. data/webpack/scenes/ModuleStreams/Details/Repositories/__tests__/ModuleStreamDetailRepositories.test.js +2 -0
  176. data/webpack/scenes/ModuleStreams/Details/__tests__/ModuleStreamDetails.test.js +2 -0
  177. data/webpack/scenes/ModuleStreams/__tests__/ModuleStreamPage.test.js +1 -0
  178. data/webpack/scenes/ModuleStreams/__tests__/ModuleStreamsTable.test.js +1 -0
  179. data/webpack/scenes/RedHatRepositories/helpers.js +3 -3
  180. data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetailProductContent.test.js.snap +1 -0
  181. data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +1 -1
  182. data/webpack/scenes/Subscriptions/Manifest/__tests__/ManageManifestModal.test.js +1 -0
  183. data/webpack/scenes/Subscriptions/Manifest/__tests__/__snapshots__/ManageManifestModal.test.js.snap +1 -1
  184. data/webpack/scenes/Subscriptions/SubscriptionActions.js +10 -0
  185. data/webpack/scenes/Subscriptions/SubscriptionConstants.js +6 -0
  186. data/webpack/scenes/Subscriptions/SubscriptionReducer.js +16 -0
  187. data/webpack/scenes/Subscriptions/SubscriptionValidations.js +3 -3
  188. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +28 -25
  189. data/webpack/scenes/Subscriptions/SubscriptionsSelectors.js +6 -0
  190. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsPage.js +0 -1
  191. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/__tests__/UpstreamSubscriptionsPage.test.js +1 -0
  192. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/__tests__/__snapshots__/UpstreamSubscriptionsPage.test.js.snap +0 -1
  193. data/webpack/scenes/Subscriptions/__tests__/SubscriptionValidations.test.js +9 -4
  194. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsActions.test.js +14 -0
  195. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsPage.test.js +2 -0
  196. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsReducer.test.js +24 -0
  197. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsSelectors.test.js +6 -0
  198. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsActions.test.js.snap +24 -0
  199. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +1 -1
  200. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsReducer.test.js.snap +138 -0
  201. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsSelectors.test.js.snap +6 -0
  202. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/EntitlementsInlineEditFormatter.js +8 -6
  203. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTableHelpers.js +23 -11
  204. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/EntitlementsInlineEditFormatter.test.js +14 -10
  205. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/SubscriptionsTable.fixtures.js +105 -0
  206. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/SubscriptionsTable.test.js +2 -0
  207. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/SubscriptionsTableHelpers.test.js +44 -0
  208. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/__snapshots__/EntitlementsInlineEditFormatter.test.js.snap +3 -3
  209. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/__snapshots__/SubscriptionsTable.test.js.snap +2 -222
  210. data/webpack/scenes/Subscriptions/index.js +4 -0
  211. metadata +41 -44
  212. data/app/lib/actions/katello/content_view_puppet_environment/clone_content.rb +0 -32
  213. data/app/lib/actions/katello/repository/clone_deb_content.rb +0 -70
  214. data/app/lib/actions/katello/repository/clone_docker_content.rb +0 -26
  215. data/app/lib/actions/katello/repository/clone_file_content.rb +0 -17
  216. data/app/lib/actions/katello/repository/clone_ostree_content.rb +0 -17
  217. data/app/lib/actions/katello/repository/clone_yum_content.rb +0 -105
  218. data/app/lib/actions/katello/repository/clone_yum_metadata.rb +0 -36
  219. data/app/lib/actions/pulp/repository/copy_deb.rb +0 -15
  220. data/app/lib/actions/pulp/repository/copy_deb_component.rb +0 -11
  221. data/app/lib/actions/pulp/repository/copy_deb_release.rb +0 -11
  222. data/app/lib/actions/pulp/repository/copy_distribution.rb +0 -11
  223. data/app/lib/actions/pulp/repository/copy_docker_manifest.rb +0 -11
  224. data/app/lib/actions/pulp/repository/copy_docker_tag.rb +0 -11
  225. data/app/lib/actions/pulp/repository/copy_errata.rb +0 -15
  226. data/app/lib/actions/pulp/repository/copy_files.rb +0 -11
  227. data/app/lib/actions/pulp/repository/copy_module_default.rb +0 -11
  228. data/app/lib/actions/pulp/repository/copy_module_stream.rb +0 -11
  229. data/app/lib/actions/pulp/repository/copy_ostree_branch.rb +0 -11
  230. data/app/lib/actions/pulp/repository/copy_package_group.rb +0 -11
  231. data/app/lib/actions/pulp/repository/copy_puppet_module.rb +0 -15
  232. data/app/lib/actions/pulp/repository/copy_rpm.rb +0 -15
  233. data/app/lib/actions/pulp/repository/copy_srpm.rb +0 -16
  234. data/app/lib/actions/pulp/repository/copy_yum_metadata_file.rb +0 -11
  235. data/app/lib/actions/pulp/repository/purge_empty_errata.rb +0 -19
  236. data/app/lib/actions/pulp/repository/purge_empty_package_groups.rb +0 -24
  237. data/db/migrate/20190326145039_remove_version_date_from_ostree_branch.rb +0 -5
  238. data/lib/katello/tasks/upgrades/3.10/update_gpg_key_urls.rake +0 -32
  239. data/webpack/components/PaginationRow/PaginationRow.test.js +0 -25
  240. data/webpack/components/PaginationRow/__snapshots__/PaginationRow.test.js.snap +0 -35
  241. data/webpack/components/PaginationRow/index.js +0 -94
  242. data/webpack/move_to_foreman/components/common/EmptyState/index.js +0 -68
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @ngdoc module
3
+ * @name Bastion.dates
4
+ *
5
+ * @description
6
+ * Module providing directives for formatting dates.
7
+ */
8
+ angular.module('Bastion.dates', [
9
+ 'Bastion',
10
+ 'react'
11
+ ]);
12
+
13
+ angular.module('Bastion.dates').factory('componentRegistry',
14
+ ['$window', function($window) {
15
+ return $window.tfm.componentRegistry;
16
+ }]
17
+ );
18
+
19
+ angular.module('Bastion.dates').factory('dateComponent',
20
+ ['componentRegistry', function(componentRegistry) {
21
+ return function(componentName) {
22
+ var dateWrapper = componentRegistry.wrapperFactory().with('i18n').wrapper;
23
+ return dateWrapper(componentRegistry.getComponent(componentName).type);
24
+ };
25
+ }]
26
+ );
27
+
28
+ angular.module('Bastion.dates').directive('date',
29
+ ['dateComponent', 'reactDirective', function(dateComponent, reactDirective) {
30
+ return reactDirective(dateComponent('IsoDate'), ['date']);
31
+ }]
32
+ );
33
+
34
+ angular.module('Bastion.dates').directive('shortDateTime',
35
+ ['dateComponent', 'reactDirective', function(dateComponent, reactDirective) {
36
+ return reactDirective(dateComponent('ShortDateTime'), ['date', 'seconds']);
37
+ }]
38
+ );
39
+
40
+ angular.module('Bastion.dates').directive('longDateTime',
41
+ ['dateComponent', 'reactDirective', function(dateComponent, reactDirective) {
42
+ return reactDirective(dateComponent('LongDateTime'), ['date', 'seconds']);
43
+ }]
44
+ );
45
+
46
+ angular.module('Bastion.dates').directive('relativeDate',
47
+ ['dateComponent', 'reactDirective', function(dateComponent, reactDirective) {
48
+ return reactDirective(dateComponent('RelativeDateTime'), ['date']);
49
+ }]
50
+ );
@@ -28,7 +28,7 @@
28
28
  <span ng-show="contentView.composite" translate>Yes</span>
29
29
  <span ng-hide="contentView.composite" translate>No</span>
30
30
  </td>
31
- <td bst-table-cell>{{ contentView.last_published | date:'longDate' }}</td>
31
+ <td bst-table-cell><long-date-time date="contentView.last_published" /></td>
32
32
  <td bst-table-cell class="number-cell">{{ contentView.repositories.length || 0 }}</td>
33
33
  </tr>
34
34
  </tbody>
@@ -54,7 +54,6 @@ organization.label
54
54
  repository.name
55
55
  repository.label
56
56
  repository.docker_upstream_name
57
- repository.url
58
57
  content_view.label
59
58
  content_view.name
60
59
  content_view.version
@@ -50,7 +50,8 @@
50
50
  <span ng-show="errata.severity">- {{ errata.severity | errataSeverity}}</span>
51
51
  </td>
52
52
  <td bst-table-cell class="number-cell">{{ errata.hosts_available_count || 0 }}</td>
53
- <td bst-table-cell>{{ errata.updated | date:'shortDate'}}</td>
53
+
54
+ <td bst-table-cell><date date="errata.updated" /></td>
54
55
  </tr>
55
56
  </tbody>
56
57
  </table>
@@ -18,6 +18,7 @@
18
18
  <th bst-table-column translate>Name</th>
19
19
  <th bst-table-column translate>Version</th>
20
20
  <th bst-table-column translate>Commit</th>
21
+ <th bst-table-column translate>Date</th>
21
22
  </tr>
22
23
  </thead>
23
24
 
@@ -26,6 +27,7 @@
26
27
  <td bst-table-cell>{{ branch.name }}</td>
27
28
  <td bst-table-cell>{{ branch.version }}</td>
28
29
  <td bst-table-cell>{{ branch.commit }}</td>
30
+ <td bst-table-cell>{{ branch.version_date }}</td>
29
31
  </tr>
30
32
  </tbody>
31
33
  </table>
@@ -17,5 +17,6 @@ angular.module('Bastion.environments', [
17
17
  'Bastion.ostree-branches',
18
18
  'Bastion.puppet-modules',
19
19
  'Bastion.repositories',
20
- 'Bastion.content-views'
20
+ 'Bastion.content-views',
21
+ 'Bastion.dates'
21
22
  ]);
@@ -24,10 +24,10 @@
24
24
  <dd>{{ errata.severity | errataSeverity }}</dd>
25
25
 
26
26
  <dt translate>Issued</dt>
27
- <dd>{{ errata.issued | date:'shortDate' }}</dd>
27
+ <dd><short-date-time date="errata.issued" /></dd>
28
28
 
29
29
  <dt translate>Last Updated On</dt>
30
- <dd>{{ errata.updated | date:'shortDate' }}</dd>
30
+ <dd><short-date-time date="errata.updated" /></dd>
31
31
 
32
32
  <dt translate>Reboot Suggested?</dt>
33
33
  <dd>{{ errata.reboot_suggested | booleanToYesNo }}</dd>
@@ -12,5 +12,6 @@ angular.module('Bastion.errata', [
12
12
  'Bastion.common',
13
13
  'Bastion.i18n',
14
14
  'Bastion.components.formatters',
15
- 'Bastion.tasks'
15
+ 'Bastion.tasks',
16
+ 'Bastion.dates'
16
17
  ]);
@@ -101,7 +101,7 @@
101
101
  <span translate>{{ errata.hosts_applicable_count || 0 }} Applicable, </span>
102
102
  <span translate>{{ errata.hosts_available_count || 0 }} Installable</span>
103
103
  </td>
104
- <td bst-table-cell>{{ errata.updated | date:'shortDate'}}</td>
104
+ <td bst-table-cell><short-date-time date="errata.updated" /></td>
105
105
  </tr>
106
106
  </tbody>
107
107
  </table>
@@ -10,6 +10,9 @@
10
10
 
11
11
  <dt translate>Commit</dt>
12
12
  <dd>{{ branch.commit }}</dd>
13
+
14
+ <dt translate>Date</dt>
15
+ <dd>{{ branch.version_date }}</dd>
13
16
  </dl>
14
17
  </div>
15
18
  </div>
@@ -68,10 +68,10 @@
68
68
  <tr bst-table-row ng-repeat="syncPlan in table.rows" class="clickable-row"
69
69
  ng-click="selectSyncPlan(syncPlan)" ng-class="{'selected-row': syncPlan === selectedSyncPlan }">
70
70
  <td bst-table-cell>{{ syncPlan.name }}</td>
71
- <td bst-table-cell>{{ syncPlan.sync_date | date:'medium' }}</td>
71
+ <td bst-table-cell><long-date-time date="syncPlan.sync_date" /></td>
72
72
  <td bst-table-cell>{{ syncPlan.enabled }}</td>
73
73
  <td bst-table-cell>{{ syncPlan.interval | translate | capitalize }}</td>
74
- <td bst-table-cell>{{ syncPlan.next_sync | date:'medium' }}</td>
74
+ <td bst-table-cell><long-date-time date="syncPlan.next_sync" /></td>
75
75
  </tr>
76
76
  </tbody>
77
77
  </table>
@@ -84,4 +84,4 @@
84
84
  Done
85
85
  </button>
86
86
  </div>
87
- </div>
87
+ </div>
@@ -21,7 +21,7 @@
21
21
  </dd>
22
22
 
23
23
  <dt translate>Backend Identifier</dt>
24
- <dd>{{ repository.backend_identifier }}</dd>
24
+ <dd>{{ repository.pulp_id }}</dd>
25
25
 
26
26
  <dt translate>Type</dt>
27
27
  <dd>{{ repository.content_type }}</dd>
@@ -250,13 +250,14 @@
250
250
  <dd ng-show="repository.last_sync == null" translate>
251
251
  Not Synced
252
252
  </dd>
253
- <dd ng-hide="repository.last_sync == null || repository.last_sync.ended_at == null" translate>
254
- {{ repository.last_sync_words }} Ago ({{ repository.last_sync.ended_at | date:'medium' }} Local Time)
253
+ <dd ng-hide="repository.last_sync == null || repository.last_sync.ended_at == null">
254
+ <relative-date date="repository.last_sync.ended_at" />
255
+ (<short-date-time date="repository.last_sync.ended_at" /> <translate>Local Time</translate>)
255
256
  </dd>
256
257
 
257
258
  <dt translate>Next Sync</dt>
258
- <dd ng-show="repository.product.sync_plan.next_sync" translate>
259
- {{ repository.product.sync_plan.next_sync | date:'medium' }} (Server Time)
259
+ <dd ng-show="repository.product.sync_plan.next_sync">
260
+ <long-date-time date="repository.product.sync_plan.next_sync" /> (<translate>Server Time</translate>)
260
261
  </dd>
261
262
  <dd ng-hide="repository.product.sync_plan.next_sync" translate>
262
263
  Synced manually, no interval set.
@@ -19,6 +19,7 @@
19
19
  <th bst-table-column><span translate>Branch Name</span></th>
20
20
  <th bst-table-column><span translate>Version</span></th>
21
21
  <th bst-table-column><span translate>Commit</span></th>
22
+ <th bst-table-column><span translate>Date</span></th>
22
23
  </tr>
23
24
  </thead>
24
25
 
@@ -33,6 +34,9 @@
33
34
  <td bst-table-cell>
34
35
  {{ item.commit }}
35
36
  </td>
37
+ <td bst-table-cell>
38
+ {{ item.version_date }}
39
+ </td>
36
40
  </tr>
37
41
  </tbody>
38
42
  </table>
@@ -87,13 +87,14 @@
87
87
  <span ng-include="'products/details/partials/sync-status.html'"></span>
88
88
 
89
89
  <dt translate>Last Sync</dt>
90
- <dd translate>
91
- {{ product.last_sync_words }} Ago ({{ product.sync_status.finish_time | date:'medium' }} Local Time)
90
+ <dd>
91
+ <relative-date date="product.last_sync" />
92
+ (<long-date-time date="product.last_sync" /> <translate>Local Time</translate>)
92
93
  </dd>
93
94
 
94
95
  <dt translate>Next Sync</dt>
95
- <dd ng-show="product.sync_plan.next_sync" translate>
96
- {{ product.sync_plan.next_sync | date:'medium' }} (Server Time)
96
+ <dd ng-show="product.sync_plan.next_sync">
97
+ <long-date-time date="product.sync_plan.next_sync" /> (<translate>Server Time</translate>)
97
98
  </dd>
98
99
  <dd ng-hide="product.sync_plan.next_sync" translate>
99
100
  Synced manually, no interval set.
@@ -21,7 +21,7 @@
21
21
  angular.module('Bastion.products').controller('ProductsController',
22
22
  ['$scope', '$state', '$sce', '$location', '$uibModal', 'translate', 'Nutupane', 'Product', 'ProductBulkAction', 'CurrentOrganization', 'Notification',
23
23
  function ($scope, $state, $sce, $location, $uibModal, translate, Nutupane, Product, ProductBulkAction, CurrentOrganization, Notification) {
24
- var nutupane, nutupaneParams, taskLink, getBulkParams, bulkError, params;
24
+ var nutupane, nutupaneParams, getBulkParams, bulkError, params;
25
25
 
26
26
  getBulkParams = function () {
27
27
  return {
@@ -90,13 +90,12 @@ angular.module('Bastion.products').controller('ProductsController',
90
90
  var success;
91
91
 
92
92
  success = function (task) {
93
- var url = $state.href('task', {taskId: task.id}), message;
94
-
95
- taskLink = $sce.trustAsHtml("<a href=" + url + ">here</a>");
96
- message = translate("Product sync has been initiated in the background. " +
97
- "Click %s to monitor the progress.");
98
-
99
- Notification.setSuccessMessage(message.replace('%s', taskLink));
93
+ var message = translate("Product sync has been initiated in the background.");
94
+ Notification.setSuccessMessage(message, {
95
+ link: {
96
+ children: translate("Click to monitor task progress."),
97
+ href: translate("/foreman_tasks/tasks/%taskId").replace('%taskId', task.id)
98
+ }});
100
99
  };
101
100
 
102
101
  ProductBulkAction.syncProducts(getBulkParams(), success, bulkError);
@@ -1,6 +1,7 @@
1
- <div class="list-unstyled" ng-show="product.last_sync_words">
2
- <div translate>
3
- Last synced {{ product.last_sync_words }} ago.
1
+ <div class="list-unstyled" ng-show="product.last_sync">
2
+ <div>
3
+ <span translate>Last synced </span>
4
+ <relative-date date="product.last_sync" />.
4
5
  </div>
5
6
  <div ng-show="mostImportantSyncState(product) == 'pending'"
6
7
  translate
@@ -23,4 +24,4 @@
23
24
  1 successfully synced repository.
24
25
  </div>
25
26
  </div>
26
- <span ng-hide="product.last_sync_words" translate>Never synced</span>
27
+ <span ng-hide="product.last_sync" translate>Never synced</span>
@@ -8,7 +8,7 @@
8
8
 
9
9
  <dt translate>Description</dt>
10
10
  <dd>{{ subscription.description }}</dd>
11
-
11
+
12
12
  <dt>
13
13
  <span translate>Virt-Who Usage Required</span>
14
14
  <i class="pf pficon-info"
@@ -26,10 +26,10 @@
26
26
  <dd>{{ subscription | subscriptionConsumedFilter }}</dd>
27
27
 
28
28
  <dt translate>Starts</dt>
29
- <dd>{{ subscription.start_date | date:"short" }}</dd>
29
+ <dd><short-date-time date="subscription.start_date" /></dd>
30
30
 
31
31
  <dt translate>Ends</dt>
32
- <dd>{{ subscription.end_date | date:"short" }}</dd>
32
+ <dd><short-date-time date="subscription.end_date" /></dd>
33
33
 
34
34
  <dt translate>Product ID</dt>
35
35
  <dd>{{ subscription.product_id }}</dd>
@@ -19,12 +19,12 @@
19
19
 
20
20
  <div class="detail">
21
21
  <span class="info-label" translate>Generated On</span>
22
- <span class="info-value">{{ manifestImport.generatedDate | date:"short" }}</span>
22
+ <span class="info-value"><short-date-time date="manifestImport.generatedDate" /></span>
23
23
  </div>
24
24
 
25
25
  <div class="detail">
26
26
  <span class="info-label" translate>Last Updated</span>
27
- <span class="info-value">{{ upstream.updated | date:"short" }}</span>
27
+ <span class="info-value"><short-date-time date="upstream.updated" /></span>
28
28
  </div>
29
29
 
30
30
  </section>
@@ -11,7 +11,7 @@
11
11
  <i ng-class="status.status == 'FAILURE' ? 'fa fa-warning' : 'fa fa-check'" />
12
12
  {{ status.statusMessage }}
13
13
  </td>
14
- <td>{{ status.created | date:"short" }}</td>
14
+ <td><short-date-time date="status.created" /></td>
15
15
  </tr>
16
16
  </tbody>
17
17
  </table>
@@ -1,2 +1,2 @@
1
1
 
2
- {{ subscription.start_date | date:"shortDate" }}{{ checkFutureDate(subscription.start_date) }}
2
+ <short-date-time date="subscription.start_date" />{{ checkFutureDate(subscription.start_date) }}
@@ -51,7 +51,7 @@
51
51
  </td>
52
52
  <td bst-table-cell><div subscription-type="subscription"></div></td>
53
53
  <td bst-table-cell><div subscription-start-date="subscription"></div></td>
54
- <td bst-table-cell>{{ subscription.end_date | date:"shortDate" }}</td>
54
+ <td bst-table-cell><short-date-time date="subscription.end_date" /></td>
55
55
  <td bst-table-cell>{{ subscription.support_level }}</td>
56
56
  <td bst-table-cell>{{ subscription.contract_number }}</td>
57
57
  <td bst-table-cell>{{ subscription.account_number }}</td>
@@ -42,7 +42,7 @@
42
42
  </dd>
43
43
 
44
44
  <dt translate>Next Sync</dt>
45
- <dd>{{ syncPlan.next_sync | date:'medium' }}</dd>
45
+ <dd><long-date-time date="syncPlan.next_sync" /></dd>
46
46
 
47
47
  <dt translate>Recurring Logic</dt>
48
48
  <dd>
@@ -43,10 +43,10 @@
43
43
  </a>
44
44
  </td>
45
45
  <td bst-table-cell>{{ syncPlan.description }}</td>
46
- <td bst-table-cell>{{ syncPlan.sync_date | date:'medium' }}</td>
46
+ <td bst-table-cell><long-date-time date="syncPlan.sync_date" /></td>
47
47
  <td bst-table-cell>{{ syncPlan.enabled }}</td>
48
48
  <td bst-table-cell>{{ syncPlan.interval | translate | capitalize }}</td>
49
- <td bst-table-cell>{{ syncPlan.next_sync | date:'medium' }}</td>
49
+ <td bst-table-cell><long-date-time date="syncPlan.next_sync" /></td>
50
50
  </tr>
51
51
  </tbody>
52
52
  </table>
@@ -8,10 +8,10 @@
8
8
  <dd>{{ task.username }}</dd>
9
9
 
10
10
  <dt translate>Started At</dt>
11
- <dd>{{ task.started_at | date:"short" }}</dd>
11
+ <dd><short-date-time date="task.started_at" /></dd>
12
12
 
13
13
  <dt translate>Finished At</dt>
14
- <dd>{{ task.ended_at | date:"short" }}</dd>
14
+ <dd><short-date-time date="task.ended_at" /></dd>
15
15
 
16
16
  <dt translate>Parameters</dt>
17
17
  <dd ng-switch="isArray(task.humanized.input)">
@@ -32,7 +32,7 @@
32
32
  </a>
33
33
  </td>
34
34
  <td bst-table-cell>{{ task.username }}</td>
35
- <td bst-table-cell>{{ task.started_at | date:"short" }}</td>
35
+ <td bst-table-cell><short-date-time date="task.started_at" /></td>
36
36
  </tr>
37
37
  </tbody>
38
38
  </table>
@@ -22,7 +22,7 @@
22
22
  {{ task.humanized.input | taskInputShort | taskInputCompile }}
23
23
  </a>
24
24
  </td>
25
- <td bst-table-cell>{{ task.started_at | date:"short" }}</td>
25
+ <td bst-table-cell><short-date-time date="task.started_at" /></td>
26
26
  </tr>
27
27
  </tbody>
28
28
  </table>
@@ -14,7 +14,12 @@ module BastionKatello
14
14
 
15
15
  Bastion.register_plugin(
16
16
  :name => 'bastion_katello',
17
- :javascript => 'bastion_katello/bastion_katello',
17
+ :javascript => proc do
18
+ [
19
+ javascript_include_tag(*webpack_asset_paths('katello_common', :extension => 'js'), "data-turbolinks-track" => true),
20
+ javascript_include_tag('bastion_katello/bastion_katello')
21
+ ]
22
+ end,
18
23
  :stylesheet => 'bastion_katello/bastion_katello',
19
24
  :pages => %w(
20
25
  activation_keys
@@ -27,7 +27,7 @@ module Katello
27
27
  :pulp => {
28
28
  :default_login => 'admin',
29
29
  :url => 'https://localhost/pulp/api/v2/',
30
- :bulk_load_size => 100,
30
+ :bulk_load_size => 2000,
31
31
  :skip_checksum_validation => false,
32
32
  :upload_chunk_size => 1_048_575, # upload size in bytes to pulp. see SSLRenegBufferSize in apache
33
33
  :sync_threads => 4,
@@ -80,8 +80,8 @@ module Katello
80
80
  end
81
81
 
82
82
  initializer "katello.initialize_cp_listener", :before => :finisher_hook do
83
- unless ForemanTasks.dynflow.config.remote? || File.basename($PROGRAM_NAME) == 'rake' || Rails.env.test?
84
- ForemanTasks.dynflow.config.on_init do |world|
83
+ unless Rails.env.test?
84
+ ForemanTasks.dynflow.config.post_executor_init do |world|
85
85
  ::Actions::Candlepin::ListenOnCandlepinEvents.ensure_running(world)
86
86
  ::Actions::Katello::EventQueue::Monitor.ensure_running(world)
87
87
  end