katello 4.3.0.rc1 → 4.3.0.rc4

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 (299) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/katello/api/v2/api_controller.rb +4 -0
  3. data/app/controllers/katello/api/v2/capsule_content_controller.rb +11 -3
  4. data/app/controllers/katello/api/v2/content_uploads_controller.rb +1 -1
  5. data/app/controllers/katello/api/v2/generic_content_units_controller.rb +10 -4
  6. data/app/controllers/katello/api/v2/host_errata_controller.rb +5 -0
  7. data/app/controllers/katello/api/v2/host_packages_controller.rb +2 -0
  8. data/app/controllers/katello/api/v2/host_tracer_controller.rb +4 -0
  9. data/app/controllers/katello/api/v2/repositories_bulk_actions_controller.rb +8 -0
  10. data/app/controllers/katello/api/v2/repositories_controller.rb +35 -3
  11. data/app/controllers/katello/api/v2/repository_sets_controller.rb +2 -2
  12. data/app/controllers/katello/api/v2/root_controller.rb +10 -19
  13. data/app/controllers/katello/concerns/api/v2/bulk_extensions.rb +3 -13
  14. data/app/controllers/katello/concerns/api/v2/registration_controller_extensions.rb +1 -9
  15. data/app/controllers/katello/remote_execution_controller.rb +1 -1
  16. data/app/lib/actions/katello/capsule_content/refresh_repos.rb +1 -1
  17. data/app/lib/actions/katello/capsule_content/sync_capsule.rb +7 -5
  18. data/app/lib/actions/katello/repository/destroy.rb +3 -3
  19. data/app/lib/actions/katello/repository/import_upload.rb +12 -2
  20. data/app/lib/actions/pulp/repository/sync.rb +0 -2
  21. data/app/lib/actions/pulp3/abstract_async_task.rb +16 -4
  22. data/app/lib/actions/pulp3/capsule_content/generate_metadata.rb +5 -4
  23. data/app/lib/actions/pulp3/capsule_content/reclaim_space.rb +25 -0
  24. data/app/lib/actions/pulp3/orchestration/repository/import_repository_upload.rb +36 -0
  25. data/app/lib/actions/pulp3/orchestration/repository/import_upload.rb +1 -1
  26. data/app/lib/actions/pulp3/repository/commit_upload.rb +3 -1
  27. data/app/lib/actions/pulp3/repository/import_upload.rb +4 -2
  28. data/app/lib/actions/pulp3/repository/reclaim_space.rb +25 -0
  29. data/app/lib/actions/pulp3/repository/save_artifact.rb +12 -8
  30. data/app/lib/katello/resources/cdn.rb +10 -1
  31. data/app/lib/katello/resources/registry.rb +1 -1
  32. data/app/models/katello/concerns/host_managed_extensions.rb +7 -4
  33. data/app/models/katello/concerns/smart_proxy_extensions.rb +21 -9
  34. data/app/models/katello/content_view_version.rb +1 -6
  35. data/app/models/katello/glue/pulp/repo.rb +1 -2
  36. data/app/models/katello/host_tracer.rb +2 -0
  37. data/app/models/katello/pulp3/repository_reference.rb +7 -0
  38. data/app/models/katello/repository.rb +2 -30
  39. data/app/models/katello/root_repository.rb +3 -44
  40. data/app/models/setting/content.rb +2 -8
  41. data/app/presenters/katello/host_package_presenter.rb +21 -0
  42. data/app/services/katello/bulk_items_helper.rb +35 -0
  43. data/app/services/katello/pulp3/api/core.rb +16 -2
  44. data/app/services/katello/pulp3/content.rb +4 -2
  45. data/app/services/katello/pulp3/pulp_content_unit.rb +9 -3
  46. data/app/services/katello/pulp3/repository.rb +9 -4
  47. data/app/services/katello/pulp3/repository_mirror.rb +1 -1
  48. data/app/services/katello/repository_type.rb +2 -1
  49. data/app/services/katello/smart_proxy_helper.rb +10 -1
  50. data/app/views/foreman/job_templates/change_content_source.erb +42 -0
  51. data/app/views/foreman/job_templates/install_errata.erb +8 -6
  52. data/app/views/foreman/job_templates/resolve_traces.erb +4 -5
  53. data/app/views/foreman/job_templates/resolve_traces_-_katello_ansible_default.erb +3 -5
  54. data/app/views/foreman/smart_proxies/_content_sync.html.erb +17 -4
  55. data/app/views/foreman/smart_proxies/_reclaim_space.html.erb +12 -0
  56. data/app/views/foreman/smart_proxies/show.html.erb +4 -2
  57. data/app/views/katello/api/v2/capsule_content/sync_status.json.rabl +6 -0
  58. data/app/views/katello/api/v2/{organizations/cdn_configuration.rabl → cdn_configurations/show.json.rabl} +4 -0
  59. data/app/views/katello/api/v2/content_facet/show.json.rabl +8 -0
  60. data/app/views/katello/api/v2/content_view_filters/show.json.rabl +0 -1
  61. data/app/views/katello/api/v2/content_views/base.json.rabl +1 -1
  62. data/app/views/katello/api/v2/host_packages/base.json.rabl +2 -0
  63. data/app/views/katello/api/v2/organizations/show.json.rabl +1 -1
  64. data/app/views/katello/api/v2/repositories/show.json.rabl +0 -3
  65. data/config/routes/api/v2.rb +5 -10
  66. data/db/migrate/20210331180353_katello_pool_organization_id_not_nullable.rb +2 -0
  67. data/db/migrate/20211115215210_drop_ostree_branches.rb +13 -0
  68. data/db/migrate/20211129200124_remove_dependency_solving_algorithm_setting.rb +5 -0
  69. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion-katello-bootstrap.js +1 -2
  70. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion_katello.js +3 -3
  71. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/capsule-content/capsule-content.controller.js +21 -1
  72. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/capsule-content/capsule-content.factory.js +2 -1
  73. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/capsule-content/sync-state.service.js +2 -0
  74. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.routes.js +0 -10
  75. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-versions.html +0 -3
  76. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version-content.controller.js +0 -10
  77. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-versions.module.js +0 -1
  78. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version.html +0 -7
  79. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/content.service.js +0 -5
  80. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.module.js +0 -1
  81. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.routes.js +0 -11
  82. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/fenced-pages.service.js +1 -2
  83. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-repositories.controller.js +14 -2
  84. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +2 -4
  85. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.filter.js +0 -10
  86. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-reclaim-space-modal.controller.js +36 -0
  87. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +16 -2
  88. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details-reclaim-space-modal.html +18 -0
  89. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html +13 -0
  90. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +1 -1
  91. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +3 -6
  92. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +4 -1
  93. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/os-versions.service.js +1 -0
  94. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/product-repositories-reclaim-space-modal.controller.js +35 -0
  95. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.routes.js +0 -9
  96. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repository.factory.js +3 -1
  97. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories-reclaim-space-modal.html +18 -0
  98. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +7 -8
  99. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/pulp-primary/pulp-primary.controller.js +35 -0
  100. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/pulp-primary/pulp-primary.factory.js +18 -0
  101. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/pulp-primary/pulp-primary.module.js +14 -0
  102. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/pulp-primary/pulp-primary.routes.js +16 -0
  103. data/engines/bastion_katello/lib/bastion_katello/engine.rb +0 -1
  104. data/lib/katello/permission_creator.rb +3 -4
  105. data/lib/katello/plugin.rb +4 -10
  106. data/lib/katello/repository_types/ostree.rb +3 -1
  107. data/lib/katello/tasks/reset.rake +2 -2
  108. data/lib/katello/tasks/upgrades/4.3/fix_url_auth.rake +25 -0
  109. data/lib/katello/version.rb +1 -1
  110. data/package.json +1 -0
  111. data/webpack/components/AddedStatusLabel.js +2 -1
  112. data/webpack/components/EditableTextInput/EditableTextInput.js +76 -17
  113. data/webpack/components/EditableTextInput/__tests__/editableTextInput.test.js +82 -0
  114. data/webpack/components/EditableTextInput/editableTextInput.scss +4 -0
  115. data/webpack/components/Packages/index.js +63 -0
  116. data/webpack/components/RoutedTabs/index.js +3 -1
  117. data/webpack/components/Search/Search.js +7 -1
  118. data/webpack/components/SelectAllCheckbox/index.js +2 -2
  119. data/webpack/components/Table/EmptyStateMessage.js +4 -2
  120. data/webpack/components/Table/MainTable.scss +7 -1
  121. data/webpack/components/Table/TableHooks.js +10 -19
  122. data/webpack/components/Table/TableWrapper.js +3 -3
  123. data/webpack/components/WithOrganization/__snapshots__/withOrganization.test.js.snap +3 -3
  124. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard.js +24 -30
  125. data/webpack/components/extensions/HostDetails/HostDetailsConstants.js +1 -0
  126. data/webpack/components/extensions/HostDetails/HostDetailsSelectors.js +16 -0
  127. data/webpack/components/extensions/HostDetails/HostErrata/HostErrataConstants.js +2 -0
  128. data/webpack/components/extensions/HostDetails/HostPackages/HostPackagesActions.js +11 -0
  129. data/webpack/components/extensions/HostDetails/HostPackages/HostPackagesConstants.js +2 -0
  130. data/webpack/components/extensions/HostDetails/HostPackages/HostPackagesSelectors.js +16 -0
  131. data/webpack/components/extensions/HostDetails/Tabs/ContentTab/SecondaryTabsRoutes.js +4 -0
  132. data/webpack/components/extensions/HostDetails/Tabs/ContentTab/constants.js +1 -0
  133. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab.js +119 -25
  134. data/webpack/components/extensions/HostDetails/Tabs/HostTracesConstants.js +1 -0
  135. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab.js +127 -0
  136. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab.scss +11 -0
  137. data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionActions.js +30 -4
  138. data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionConstants.js +1 -0
  139. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsActions.js +73 -0
  140. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsConstants.js +2 -0
  141. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsSelectors.js +16 -0
  142. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +347 -0
  143. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.scss +7 -0
  144. data/webpack/components/extensions/HostDetails/Tabs/TracesTab.js +38 -31
  145. data/webpack/components/extensions/HostDetails/Tabs/__tests__/bookmarks.fixtures.json +12 -0
  146. data/webpack/components/extensions/HostDetails/Tabs/__tests__/contentOverrides.fixtures.json +227 -0
  147. data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +423 -2
  148. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packages.fixtures.json +28 -0
  149. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packagesTab.test.js +91 -0
  150. data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySets.fixtures.json +120 -0
  151. data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySetsTab.test.js +307 -0
  152. data/webpack/components/extensions/HostDetails/Tabs/__tests__/resolveErrata.fixtures.json +35 -0
  153. data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +55 -9
  154. data/webpack/components/extensions/HostDetails/Tabs/customizedRexUrlHelpers.js +28 -14
  155. data/webpack/containers/Application/overrides.scss +31 -9
  156. data/webpack/global_index.js +11 -4
  157. data/webpack/redux/reducers/RedHatRepositories/enabled.fixtures.js +0 -2
  158. data/webpack/scenes/Content/ContentConfig.js +23 -7
  159. data/webpack/scenes/Content/Details/__tests__/contentDetail.test.js +2 -0
  160. data/webpack/scenes/ContentCredentials/ContentCredentialActions.js +18 -0
  161. data/webpack/scenes/ContentCredentials/ContentCredentialConstants.js +2 -0
  162. data/webpack/scenes/ContentCredentials/ContentCredentialSelectors.js +12 -0
  163. data/webpack/scenes/ContentCredentials/__tests__/contentCredentials.fixtures.js +73 -0
  164. data/webpack/scenes/ContentViews/Copy/CopyContentViewForm.js +8 -12
  165. data/webpack/scenes/ContentViews/Copy/CopyContentViewModal.js +1 -1
  166. data/webpack/scenes/ContentViews/Copy/__tests__/copyContentView.test.js +1 -1
  167. data/webpack/scenes/ContentViews/Create/ContentViewFormComponents.js +3 -3
  168. data/webpack/scenes/ContentViews/Create/CreateContentViewForm.js +7 -2
  169. data/webpack/scenes/ContentViews/Create/CreateContentViewForm.scss +7 -0
  170. data/webpack/scenes/ContentViews/Create/__tests__/createContentView.test.js +9 -9
  171. data/webpack/scenes/ContentViews/Delete/ContentViewDeleteWizard.js +6 -6
  172. data/webpack/scenes/ContentViews/Delete/Steps/CVDeleteEnvironmentsSelection.js +39 -37
  173. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionFinish.js +10 -4
  174. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReview.js +35 -33
  175. data/webpack/scenes/ContentViews/Delete/__tests__/contentViewDelete.test.js +12 -7
  176. data/webpack/scenes/ContentViews/Delete/__tests__/cvVersionsData.fixtures.json +2 -6
  177. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentEnvironments.js +13 -14
  178. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +36 -31
  179. data/webpack/scenes/ContentViews/Details/ContentViewDetailActions.js +8 -8
  180. data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +108 -41
  181. data/webpack/scenes/ContentViews/Details/ContentViewInfo.js +3 -2
  182. data/webpack/scenes/ContentViews/Details/Filters/Add/CVFilterAddModal.js +2 -2
  183. data/webpack/scenes/ContentViews/Details/Filters/Add/__tests__/cvFilterCreateResult.fixtures.json +1 -2
  184. data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositoryTable.js +1 -4
  185. data/webpack/scenes/ContentViews/Details/Filters/CVContainerImageFilterContent.js +6 -6
  186. data/webpack/scenes/ContentViews/Details/Filters/CVErrataDateFilterContent.js +11 -5
  187. data/webpack/scenes/ContentViews/Details/Filters/CVErrataIDFilterContent.js +6 -9
  188. data/webpack/scenes/ContentViews/Details/Filters/CVModuleStreamFilterContent.js +5 -8
  189. data/webpack/scenes/ContentViews/Details/Filters/CVPackageGroupFilterContent.js +40 -43
  190. data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +2 -2
  191. data/webpack/scenes/ContentViews/Details/Filters/ContentType.js +4 -4
  192. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilterDetailsHeader.js +6 -8
  193. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +6 -1
  194. data/webpack/scenes/ContentViews/Details/Filters/Rules/ContainerTag/AddEditContainerTagRuleModal.js +1 -1
  195. data/webpack/scenes/ContentViews/Details/Filters/Rules/Package/AddEditPackageRuleModal.js +16 -22
  196. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +8 -8
  197. data/webpack/scenes/ContentViews/Details/Filters/__tests__/ContentViewPackageGroupFilter.test.js +3 -5
  198. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewErrataByDateDetails.fixtures.json +1 -8
  199. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilterDetail.fixtures.json +1 -2
  200. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilterDetails.test.js +5 -9
  201. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvAllRepos.fixtures.json +0 -2
  202. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataDateFilterContent.test.js +1 -9
  203. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataIDFilter.test.js +2 -4
  204. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErratumFilterDetails.fixtures.json +1 -2
  205. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterDetailModuleAffectedRepos.fixtures.json +1 -8
  206. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterDetailWithAffectedRepos.fixtures.json +1 -8
  207. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilter.test.js +2 -4
  208. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilterDetails.fixtures.json +1 -2
  209. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvPackageFilterDetail.fixtures.json +1 -3
  210. data/webpack/scenes/ContentViews/Details/Promote/ContentViewVersionPromote.js +61 -32
  211. data/webpack/scenes/ContentViews/Details/Repositories/ContentCounts.js +6 -1
  212. data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +5 -8
  213. data/webpack/scenes/ContentViews/Details/Repositories/LastSync.js +55 -9
  214. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewAddRemove.test.js +2 -0
  215. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewDetailRepos.fixtures.json +0 -2
  216. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionContent.js +48 -29
  217. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionEnvironments.js +2 -2
  218. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionErrata.js +9 -7
  219. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionErrata.scss +5 -2
  220. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +38 -9
  221. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveCVVersionWizard.js +4 -1
  222. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVEnvironmentSelectionForm.js +59 -53
  223. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionDeleteFinish.js +14 -3
  224. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionRemoveReview.js +24 -17
  225. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvVersionRemove.test.js +3 -3
  226. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/versionsResponseData.fixtures.json +1 -4
  227. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetails.js +4 -2
  228. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsHeader.js +134 -32
  229. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionRepositoryCell.js +8 -3
  230. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionComponent.fixtures.json +1 -4
  231. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.fixtures.json +1 -2
  232. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.test.js +21 -1
  233. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetailsCounts.fixtures.json +1 -2
  234. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetailsEmpty.test.js +22 -1
  235. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionRepositories.fixtures.json +1 -18
  236. data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.fixtures.json +5 -5
  237. data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.test.js +2 -0
  238. data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersionsWithTask.fixtures.json +1 -3
  239. data/webpack/scenes/ContentViews/Details/contentViewInfo.scss +0 -4
  240. data/webpack/scenes/ContentViews/Publish/CVPublishForm.js +66 -53
  241. data/webpack/scenes/ContentViews/Publish/CVPublishReview.js +40 -28
  242. data/webpack/scenes/ContentViews/Publish/PublishContentViewWizard.js +3 -3
  243. data/webpack/scenes/ContentViews/Publish/__tests__/publishContentView.test.js +14 -14
  244. data/webpack/scenes/ContentViews/Publish/cvPublishForm.scss +6 -0
  245. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +53 -12
  246. data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +12 -6
  247. data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +6 -6
  248. data/webpack/scenes/ContentViews/components/ContentViewIcon.js +12 -7
  249. data/webpack/scenes/ContentViews/components/ContentViewsCounter.js +2 -2
  250. data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.js +26 -27
  251. data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.scss +18 -6
  252. data/webpack/scenes/ContentViews/components/WizardHeader.js +44 -0
  253. data/webpack/scenes/ContentViews/components/contentViewIcon.scss +13 -2
  254. data/webpack/scenes/Organizations/OrganizationActions.js +22 -24
  255. data/webpack/scenes/Organizations/OrganizationConstants.js +1 -3
  256. data/webpack/scenes/Organizations/OrganizationReducer.js +0 -7
  257. data/webpack/scenes/Organizations/OrganizationSelectors.js +16 -0
  258. data/webpack/scenes/Organizations/__tests__/OrganizationActions.test.js +1 -21
  259. data/webpack/scenes/Organizations/__tests__/OrganizationReducer.test.js +0 -20
  260. data/webpack/scenes/Organizations/__tests__/organizations.fixtures.js +34 -23
  261. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationForm.js +185 -0
  262. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationForm.scss +3 -0
  263. data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +112 -146
  264. data/webpack/scenes/Subscriptions/Manifest/__tests__/CdnConfigurationForm.test.js +114 -0
  265. data/webpack/scenes/Subscriptions/Manifest/__tests__/ManageManifestModal.test.js +121 -31
  266. data/webpack/scenes/Subscriptions/Manifest/index.js +14 -3
  267. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsActions.test.js.snap +1 -0
  268. data/webpack/scenes/Tasks/TaskActions.js +4 -3
  269. data/webpack/scenes/Tasks/__tests__/__snapshots__/TaskActions.test.js.snap +1 -0
  270. data/webpack/utils/helpers.js +2 -2
  271. metadata +62 -43
  272. data/app/controllers/katello/api/v2/ostree_branches_controller.rb +0 -16
  273. data/app/lib/actions/pulp/repository/presenters/ostree_presenter.rb +0 -91
  274. data/app/models/katello/ostree_branch.rb +0 -12
  275. data/app/models/katello/repository_ostree_branch.rb +0 -7
  276. data/app/services/katello/pulp/ostree_branch.rb +0 -14
  277. data/app/services/katello/pulp/repository/ostree.rb +0 -48
  278. data/app/views/katello/api/v2/ostree_branches/compare.json.rabl +0 -10
  279. data/app/views/katello/api/v2/ostree_branches/index.json.rabl +0 -7
  280. data/app/views/katello/api/v2/ostree_branches/show.json.rabl +0 -5
  281. data/app/views/katello/api/v2/root/resource_list.json.rabl +0 -3
  282. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-ostree-branches.html +0 -26
  283. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-ostree.html +0 -27
  284. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/ostree-branch-repositories.controller.js +0 -77
  285. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/ostree-branch.controller.js +0 -31
  286. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branch-info.html +0 -15
  287. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branch-repositories.html +0 -72
  288. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branch.html +0 -30
  289. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/ostree-branch.factory.js +0 -27
  290. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/ostree-branches.controller.js +0 -67
  291. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/ostree-branches.module.js +0 -15
  292. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/ostree-branches.routes.js +0 -50
  293. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/views/ostree-branches.html +0 -40
  294. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-ostree-branches.html +0 -40
  295. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/ostree-upstream-sync-policy.service.js +0 -26
  296. data/webpack/components/extensions/HostDetails/Tabs/SubscriptionTab.js +0 -12
  297. data/webpack/scenes/Content/Details/ContentCounts.js +0 -42
  298. data/webpack/scenes/Subscriptions/Manifest/__tests__/SimpleContentAccess.test.js +0 -108
  299. data/webpack/scenes/Subscriptions/Manifest/__tests__/__snapshots__/ManageManifestModal.test.js.snap +0 -158
@@ -1,48 +0,0 @@
1
- module Katello
2
- module Pulp
3
- class Repository
4
- class Ostree < ::Katello::Pulp::Repository
5
- PULP_MIRROR_SYNC_DEPTH = -1
6
-
7
- def generate_primary_importer
8
- config = {
9
- feed: root.url,
10
- depth: root.compute_ostree_upstream_sync_depth
11
- }
12
- Runcible::Models::OstreeImporter.new(config.merge(primary_importer_connection_options))
13
- end
14
-
15
- def generate_mirror_importer
16
- config = {
17
- feed: external_url(true),
18
- depth: PULP_MIRROR_SYNC_DEPTH
19
- }
20
- Runcible::Models::OstreeImporter.new(config.merge(mirror_importer_connection_options))
21
- end
22
-
23
- def generate_distributors
24
- [Runcible::Models::OstreeDistributor.new(:id => repo.pulp_id,
25
- :auto_publish => true,
26
- :relative_path => repo.relative_path,
27
- :depth => root.compute_ostree_upstream_sync_depth)]
28
- end
29
-
30
- def distributors_to_publish(_options)
31
- {Runcible::Models::OstreeDistributor => {}}
32
- end
33
-
34
- def partial_repo_path
35
- "/pulp/ostree/web/#{repo.relative_path}".sub('//', '/')
36
- end
37
-
38
- def importer_class
39
- Runcible::Models::OstreeImporter
40
- end
41
-
42
- def copy_contents(destination_repo, _options = {})
43
- @smart_proxy.pulp_api.extensions.ostree_branch.copy(@repo.pulp_id, destination_repo.pulp_id, {})
44
- end
45
- end
46
- end
47
- end
48
- end
@@ -1,10 +0,0 @@
1
- object false
2
-
3
- extends "katello/api/v2/common/metadata"
4
-
5
- child @collection[:results] => :results do
6
- extends 'katello/api/v2/ostree_branches/show'
7
- node :comparison do |result|
8
- result.comparison
9
- end
10
- end
@@ -1,7 +0,0 @@
1
- object false
2
-
3
- extends "katello/api/v2/common/metadata"
4
-
5
- child @collection[:results] => :results do
6
- extends 'katello/api/v2/ostree_branches/show'
7
- end
@@ -1,5 +0,0 @@
1
- object @resource
2
-
3
- attributes :pulp_id, :id
4
- attributes :name, :version, :commit
5
- attributes :pulp_id => :uuid
@@ -1,3 +0,0 @@
1
- collection Katello::Util::Data.ostructize(@collection)
2
-
3
- attributes :href, :rel
@@ -1,26 +0,0 @@
1
- <div data-extend-template="layouts/partials/table.html">
2
- <div data-block="search-filter">
3
- <select class="form-control" ng-model="repositoryId" ng-options="repo.id as repo.name for repo in repositories"></select>
4
- </div>
5
-
6
- <table data-block="table" class="table table-striped table-bordered">
7
- <thead>
8
- <tr bst-table-head>
9
- <th bst-table-column translate>Name</th>
10
- <th bst-table-column translate>Version</th>
11
- <th bst-table-column translate>Commit</th>
12
- </tr>
13
- </thead>
14
-
15
- <tbody>
16
- <tr bst-table-row ng-repeat="branch in table.rows">
17
- <td bst-table-cell>
18
- <a ui-sref="ostree-branch.info({branchId: branch.id})">{{ branch.name }}</a>
19
- </td>
20
- <td bst-table-cell>{{ branch.version }}</td>
21
- <td bst-table-cell>{{ branch.commit }}</td>
22
- </tr>
23
- </tbody>
24
- </table>
25
-
26
- </div>
@@ -1,27 +0,0 @@
1
- <div data-extend-template="layouts/partials/table.html">
2
- <div data-block="search-filter">
3
- <select class="form-control" ng-model="contentView" ng-change="contentViewSelected(contentView)" ng-options="contentView.name for (id, contentView) in contentViews"></select>
4
- <select class="form-control" ng-model="repository" ng-change="repositorySelected(repository)" ng-options="repository.name for (id, repository) in repositories"></select>
5
- </div>
6
-
7
- <span data-block="no-rows-message" ng-bind="getNoRowsMessage()"></span>
8
- <span data-block="no-search-results-message" ng-bind="getZeroResultsMessage()"></span>
9
-
10
- <table data-block="table" class="table table-striped table-bordered">
11
- <thead>
12
- <tr bst-table-head>
13
- <th bst-table-column translate>Name</th>
14
- <th bst-table-column translate>Version</th>
15
- <th bst-table-column translate>Commit</th>
16
- </tr>
17
- </thead>
18
-
19
- <tbody>
20
- <tr bst-table-row ng-repeat="branch in table.rows">
21
- <td bst-table-cell>{{ branch.name }}</td>
22
- <td bst-table-cell>{{ branch.version }}</td>
23
- <td bst-table-cell>{{ branch.commit }}</td>
24
- </tr>
25
- </tbody>
26
- </table>
27
- </div>
@@ -1,77 +0,0 @@
1
- /**
2
- * @ngdoc object
3
- * @name Bastion.ostree-branches.controller:OstreeBranchRepositoriesController
4
- *
5
- * @requires $scope
6
- * @requires $q
7
- * @requires Nutupane
8
- * @requires Repository
9
- * @requires Environment
10
- * @requires ContentView
11
- * @requires CurrentOrganization
12
- *
13
- * @description
14
- * Provides the functionality for the OSTree branch repositories page.
15
- */
16
- angular.module('Bastion.ostree-branches').controller('OstreeBranchRepositoriesController',
17
- ['$scope', '$q', 'Nutupane', 'Repository', 'Environment', 'ContentView', 'CurrentOrganization',
18
- function ($scope, $q, Nutupane, Repository, Environment, ContentView, CurrentOrganization) {
19
- var repositoriesNutupane, environment, contentView, params;
20
- params = {
21
- 'ostree_branch_id': $scope.$stateParams.branchId,
22
- 'organization_id': CurrentOrganization,
23
- 'paged': false
24
- };
25
-
26
- repositoriesNutupane = new Nutupane(Repository, params);
27
- $scope.controllerName = 'katello_repositories';
28
- $scope.table = repositoriesNutupane.table;
29
- $scope.table.initialLoad = false;
30
- repositoriesNutupane.primaryOnly = true;
31
- repositoriesNutupane.setSearchKey('repositoriesSearch');
32
-
33
- environment = Environment.queryUnpaged(function (response) {
34
- $scope.environments = response.results;
35
- $scope.environmentFilter = _.find($scope.environments, {library: true}).id;
36
- });
37
-
38
- contentView = ContentView.queryUnpaged(function (response) {
39
- $scope.contentViews = response.results;
40
- _.each($scope.contentViews, function(cv) {
41
- cv['environment_ids'] = _.map(cv.environments, 'id');
42
- });
43
- $scope.contentViewFilter = _.find($scope.contentViews, {'default': true});
44
- });
45
-
46
- $scope.table.working = true;
47
- $q.all([contentView.$promise, environment.$promise]).then(function () {
48
- $scope.filterBranches();
49
- $scope.table.working = false;
50
- });
51
-
52
- $scope.filterBranches = function () {
53
- var foundVersion, env;
54
- params['environment_id'] = $scope.environmentFilter;
55
-
56
- if ($scope.contentViewFilter) {
57
- foundVersion = _.find($scope.contentViewFilter.versions, function(version) {
58
- // Find the version belonging to the environment specified by the enviroment filter
59
- env = _.find(version.environment_ids, function(envId) {
60
- return envId === $scope.environmentFilter;
61
- });
62
-
63
- return !angular.isUndefined(env);
64
- });
65
-
66
- if (!angular.isUndefined(foundVersion)) {
67
- params['content_view_version_id'] = foundVersion.id;
68
- } else {
69
- delete params['content_view_version_id'];
70
- }
71
- }
72
-
73
- repositoriesNutupane.setParams(params);
74
- repositoriesNutupane.refresh();
75
- };
76
- }]
77
- );
@@ -1,31 +0,0 @@
1
- /**
2
- * @ngdoc object
3
- * @name Bastion.ostree-branches.controller:OstreeBranchController
4
- *
5
- * @requires $scope
6
- * @requires OstreeBranch
7
- * @requires ApiErrorHandler
8
- *
9
- * @description
10
- * Provides the functionality for the Ostree Branch action pane.
11
- */
12
- angular.module('Bastion.ostree-branches').controller('OstreeBranchController', ['$scope', 'OstreeBranch', 'ApiErrorHandler',
13
- function ($scope, OstreeBranch, ApiErrorHandler) {
14
- $scope.panel = {
15
- error: false,
16
- loading: true
17
- };
18
-
19
- if ($scope.branch) {
20
- $scope.panel.loading = false;
21
- }
22
-
23
- $scope.branch = OstreeBranch.get({id: $scope.$stateParams.branchId}, function (branch) {
24
- $scope.$broadcast('branch.loaded', branch);
25
- $scope.panel.loading = false;
26
- }, function (response) {
27
- $scope.panel.loading = false;
28
- ApiErrorHandler.handleGETRequestErrors(response, $scope);
29
- });
30
- }
31
- ]);
@@ -1,15 +0,0 @@
1
- <span page-title ng-model="branch">{{ 'OSTree Branch: ' | translate }} {{ branch.name }}</span>
2
-
3
- <div data-extend-template="layouts/two-column-details.html">
4
- <div data-block="left-column">
5
- <h4 translate>Branch Info</h4>
6
-
7
- <dl class="dl-horizontal dl-horizontal-left">
8
- <dt translate>Version</dt>
9
- <dd>{{ branch.version }}</dd>
10
-
11
- <dt translate>Commit</dt>
12
- <dd>{{ branch.commit }}</dd>
13
- </dl>
14
- </div>
15
- </div>
@@ -1,72 +0,0 @@
1
- <span page-title ng-model="branch">{{ 'OSTree Branch: ' | translate }} {{ branch.name }}</span>
2
-
3
- <h3 translate>
4
- Repositories containing branch {{ branch.name }}
5
- </h3>
6
-
7
- <div data-extend-template="layouts/partials/table.html">
8
- <div data-block="search-filter">
9
- <select class="form-control"
10
- placeholder="{{ 'Select Environment' | translate }}"
11
- ng-disabled="!environments"
12
- ng-model="environmentFilter"
13
- ng-options="e.id as e.name for e in environments"
14
- ng-change="filterBranches()">
15
- </select>
16
-
17
- <select class="form-control"
18
- placeholder="{{ 'Select Content View' | translate }}"
19
- ng-disabled="!contentViews || filteredCVs.length === 0"
20
- ng-model="contentViewFilter"
21
- ng-options="cv as cv.name for cv in filteredCVs = (contentViews | filter:{environment_ids: environmentFilter})"
22
- ng-change="filterBranches()">
23
- </select>
24
- <p class="help-block" translate ng-show="filteredCVs.length === 0">
25
- There are no Content Views in this Environment.
26
- </p>
27
- </div>
28
-
29
- <span data-block="no-rows-message" translate>
30
- No Repositories contain this Branch.
31
- </span>
32
-
33
- <div data-block="table">
34
- <table class="table table-striped table-bordered" ng-class="{'table-mask': table.working}">
35
- <thead>
36
- <tr bst-table-head>
37
- <th bst-table-column="name"><span translate>Name</span></th>
38
- <th bst-table-column="product"><span translate>Product</span></th>
39
- <th bst-table-column="lastSync"><span translate>Last Sync</span></th>
40
- </tr>
41
- </thead>
42
-
43
- <tbody>
44
- <tr bst-table-row
45
- ng-repeat="repository in table.rows">
46
- <td bst-table-cell>
47
- <a ng-href="/products/{{ repository.product.id }}/repositories/{{ repository.library_instance_id || repository.id }}">
48
- {{ repository.name }}
49
- </a>
50
- </td>
51
- <td bst-table-cell>
52
- <a ui-sref="product.repositories({productId: repository.product.id})">
53
- {{ repository.product.name }}
54
- </a>
55
- </td>
56
- <td bst-table-cell>
57
- <span ng-show="repository.url">
58
- <span ng-show="repository.last_sync == null" translate>
59
- Not Synced
60
- </span>
61
- <span ng-hide="repository.last_sync == null">
62
- <a href="/foreman_tasks/tasks/{{repository.last_sync.id}}">{{ repository.last_sync.result | capitalize}}</a>
63
- <span translate>{{ repository.last_sync_words }} ago</span>
64
- </span>
65
- </span>
66
- <span ng-hide="repository.url" translate>N/A</span>
67
- </td>
68
- </tr>
69
- </tbody>
70
- </table>
71
- </div>
72
- </div>
@@ -1,30 +0,0 @@
1
- <span page-title ng-model="branch">{{ 'OSTree Branch: ' | translate }} {{ branch.name }}</span>
2
-
3
- <div data-extend-template="layouts/details-page-with-breadcrumbs.html">
4
- <div data-block="header">
5
- {{ branch.name }}
6
- </div>
7
-
8
- <nav data-block="navigation">
9
- <ul class="nav nav-tabs">
10
- <li ng-class="{active: isState('ostree-branch.info')}">
11
- <a ui-sref="ostree-branch.info">
12
- <span translate>
13
- Details
14
- </span>
15
- </a>
16
- </li>
17
- <li ng-class="{active: isState('ostree-branch.repositories')}">
18
- <a ui-sref="ostree-branch.repositories">
19
- <span translate>
20
- Repositories
21
- </span>
22
- </a>
23
- </li>
24
- </ul>
25
- </nav>
26
-
27
- <div data-block="content">
28
- <section ui-view></section>
29
- </div>
30
- </div>
@@ -1,27 +0,0 @@
1
- (function () {
2
- 'use strict';
3
-
4
- /**
5
- * @ngdoc factory
6
- * @name Bastion.ostree-branches.factory:OstreeBranch
7
- *
8
- * @description
9
- * Provides a BastionResource for interacting with Ostree Branches
10
- */
11
- function OstreeBranch(BastionResource) {
12
- return BastionResource('katello/api/v2/ostree_branches/:id',
13
- {'id': '@id'},
14
- {
15
- autocomplete: {method: 'GET', isArray: true, params: {id: 'auto_complete_search'}}
16
- }
17
-
18
- );
19
- }
20
-
21
- angular
22
- .module('Bastion.ostree-branches')
23
- .factory('OstreeBranch', OstreeBranch);
24
-
25
- OstreeBranch.$inject = ['BastionResource'];
26
-
27
- })();
@@ -1,67 +0,0 @@
1
- /**
2
- * @ngdoc object
3
- * @name Bastion.ostree-branches.controller:OstreeBranchesController
4
- *
5
- * @requires $scope
6
- * @requires $location
7
- * @requires translate
8
- * @requires Nutupane
9
- * @requires OstreeBranch
10
- * @requires Repository
11
- * @requires CurrentOrganization
12
- *
13
- * @description
14
- * Provides the functionality specific to ostree branches for use with the Nutupane UI pattern.
15
- * Defines the columns to display and the transform function for how to generate each row
16
- * within the table.
17
- */
18
-
19
- angular.module('Bastion.ostree-branches').controller('OstreeBranchesController',
20
- ['$scope', '$location', 'translate', 'Nutupane', 'OstreeBranch', 'Repository', 'CurrentOrganization',
21
- function ($scope, $location, translate, Nutupane, OstreeBranch, Repository, CurrentOrganization) {
22
- var nutupane, params = {
23
- 'organization_id': CurrentOrganization,
24
- 'search': $location.search().search || "",
25
- 'paged': true
26
- };
27
-
28
- nutupane = $scope.nutupane = new Nutupane(OstreeBranch, params);
29
- $scope.controllerName = 'katello_ostree_branches';
30
- $scope.table = nutupane.table;
31
- $scope.removeRow = nutupane.removeRow;
32
-
33
- $scope.table.closeItem = function () {
34
- $scope.transitionTo('ostree-branches.index');
35
- };
36
-
37
- $scope.repository = {name: translate('All Repositories'), id: 'all'};
38
-
39
- Repository.queryUnpaged({'organization_id': CurrentOrganization, 'content_type': 'ostree'}, function (response) {
40
- $scope.repositories = [$scope.repository];
41
- $scope.repositories = $scope.repositories.concat(response.results);
42
-
43
- if ($location.search().repositoryId) {
44
- $scope.repository = _.find($scope.repositories, function (repository) {
45
- return repository.id === parseInt($location.search().repositoryId, 10);
46
- });
47
- }
48
- });
49
-
50
- $scope.$watch('repository', function (repository) {
51
- var nutupaneParams = nutupane.getParams();
52
-
53
- if (repository.id === 'all') {
54
- nutupaneParams['repository_id'] = null;
55
- nutupane.setParams(nutupaneParams);
56
- } else {
57
- $location.search('repositoryId', repository.id);
58
- nutupaneParams['repository_id'] = repository.id;
59
- nutupane.setParams(nutupaneParams);
60
- }
61
-
62
- if (!nutupane.table.initialLoad) {
63
- nutupane.refresh();
64
- }
65
- });
66
- }]
67
- );
@@ -1,15 +0,0 @@
1
- /**
2
- * @ngdoc module
3
- * @name Bastion.ostree-branches
4
- *
5
- * @description
6
- * Module for Ostree Branch related functionality.
7
- */
8
- angular.module('Bastion.ostree-branches', [
9
- 'ngResource',
10
- 'ui.router',
11
- 'Bastion',
12
- 'Bastion.i18n',
13
- 'Bastion.common',
14
- 'Bastion.components'
15
- ]);
@@ -1,50 +0,0 @@
1
- /**
2
- * @ngdoc object
3
- * @name Bastion.ostree-branches.config
4
- *
5
- * @requires $stateProvider
6
- *
7
- * @description
8
- * State routes defined for the ostree branches module.
9
- */
10
- angular.module('Bastion.ostree-branches').config(['$stateProvider', function ($stateProvider) {
11
- $stateProvider.state('ostree-branches', {
12
- url: '/ostree_branches',
13
- permission: ['view_products', 'view_content_views'],
14
- views: {
15
- '@': {
16
- controller: 'OstreeBranchesController',
17
- templateUrl: 'ostree-branches/views/ostree-branches.html'
18
- }
19
- },
20
- ncyBreadcrumb: {
21
- label: "{{ 'OSTree Branches' | translate }}"
22
- }
23
- })
24
- .state('ostree-branch', {
25
- abstract: true,
26
- url: '/ostree_branches/:branchId',
27
- permission: ['view_products', 'view_content_views'],
28
- controller: 'OstreeBranchController',
29
- templateUrl: 'ostree-branches/details/views/ostree-branch.html'
30
- })
31
- .state('ostree-branch.info', {
32
- url: '',
33
- permission: ['view_products', 'view_content_views'],
34
- templateUrl: 'ostree-branches/details/views/ostree-branch-info.html',
35
- ncyBreadcrumb: {
36
- label: "{{ branch.name }}",
37
- parent: 'ostree-branches'
38
- }
39
- })
40
- .state('ostree-branch.repositories', {
41
- url: '/repositories',
42
- permission: ['view_products', 'view_content_views'],
43
- controller: 'OstreeBranchRepositoriesController',
44
- templateUrl: 'ostree-branches/details/views/ostree-branch-repositories.html',
45
- ncyBreadcrumb: {
46
- label: "{{ 'Repositories' | translate }}",
47
- parent: 'ostree-branch.info'
48
- }
49
- });
50
- }]);
@@ -1,40 +0,0 @@
1
- <span page-title>{{ 'OSTree Branches' | translate }}</span>
2
-
3
- <div data-extend-template="layouts/table-with-header.html">
4
-
5
- <header data-block="header" translate>
6
- OSTree Branches
7
- </header>
8
-
9
- <div data-block="search-filter">
10
- <select class="form-control" ng-model="repository" ng-options="repository.name for (id, repository) in repositories"></select>
11
- </div>
12
-
13
- <span data-block="no-rows-message" translate>
14
- You currently don't have any OSTree Branches.
15
- </span>
16
-
17
- <div data-block="table">
18
- <table class="table table-striped table-bordered" ng-class="{'table-mask': table.working}">
19
- <thead>
20
- <tr bst-table-head>
21
- <th bst-table-column="name">{{ "Name" | translate }}</th>
22
- <th bst-table-column="version">{{ "Version" | translate }}</th>
23
- </tr>
24
- </thead>
25
-
26
- <tbody>
27
- <tr bst-table-row ng-repeat="branch in table.rows">
28
- <td bst-table-cell>
29
- <a ui-sref="ostree-branch.info({branchId: branch.id})">
30
- {{ branch.name }}
31
- </a>
32
- </td>
33
- <td bst-table-cell>
34
- {{ branch.version }}
35
- </td>
36
- </tr>
37
- </tbody>
38
- </table>
39
- </div>
40
- </div>
@@ -1,40 +0,0 @@
1
- <span page-title ng-model="repository">{{ 'Manage OSTree Branches for Repository:' | translate }} {{ repository.name }}</span>
2
-
3
- <div data-block="messages">
4
- <div bst-alert="success" ng-hide="generationTaskId === undefined">
5
- <button type="button" class="close" ng-click="clearTaskId()">&times;</button>
6
- <p translate>
7
- OSTree Branch metadata generation has been initiated in the background. Click
8
- <a ng-href="{{ taskUrl() }}">Here</a> to monitor the progress.
9
- </p>
10
- </div>
11
- </div>
12
-
13
- <div data-extend-template="layouts/partials/table.html">
14
- <div data-block="table">
15
- <table class="table table-striped table-bordered" >
16
-
17
- <thead>
18
- <tr bst-table-head>
19
- <th bst-table-column><span translate>Branch Name</span></th>
20
- <th bst-table-column><span translate>Version</span></th>
21
- <th bst-table-column><span translate>Commit</span></th>
22
- </tr>
23
- </thead>
24
-
25
- <tbody>
26
- <tr bst-table-row ng-repeat="item in table.rows">
27
- <td bst-table-cell>
28
- {{ item.name }}
29
- </td>
30
- <td bst-table-cell>
31
- {{ item.version }}
32
- </td>
33
- <td bst-table-cell>
34
- {{ item.commit }}
35
- </td>
36
- </tr>
37
- </tbody>
38
- </table>
39
- </div>
40
- </div>
@@ -1,26 +0,0 @@
1
- /**
2
- * @ngdoc service
3
- * @name Bastion.repository.service:ostreeUpstreamSyncPolicy
4
- *
5
- * @requires translate
6
- *
7
- * @description
8
- * Provides a ostree upstream syncPolicies for repositories
9
- */
10
- angular.module('Bastion.repositories').service('OstreeUpstreamSyncPolicy',
11
- ['translate', function (translate) {
12
-
13
- this.syncPolicies = {
14
- 'latest': translate('Latest Only'),
15
- 'all': translate('All History'),
16
- 'custom': translate('Custom Depth')
17
- };
18
-
19
- this.syncPolicyName = function (policy, depth) {
20
- if (policy === "custom") {
21
- return translate('Custom Depth (Currently %s)').replace('%s', depth.toString());
22
- }
23
- return this.syncPolicies[policy];
24
- };
25
- }]
26
- );
@@ -1,12 +0,0 @@
1
- import React from 'react';
2
- import EmptyPage from 'foremanReact/components/common/EmptyState/EmptyStatePattern';
3
-
4
- const SubscriptionTab = () => (
5
- <EmptyPage
6
- icon="enterprise"
7
- header="WIP Subscription"
8
- description="This is a demo for adding content to the new host details page"
9
- />
10
- );
11
-
12
- export default SubscriptionTab;