katello 3.3.0.rc1.1 → 3.3.0.rc2

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 (155) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +2 -2
  3. data/app/controllers/katello/api/v2/content_view_filters_controller.rb +8 -1
  4. data/app/controllers/katello/api/v2/content_views_controller.rb +30 -7
  5. data/app/controllers/katello/api/v2/host_contents_controller.rb +1 -0
  6. data/app/controllers/katello/products_controller.rb +9 -10
  7. data/app/controllers/katello/providers_controller.rb +3 -2
  8. data/app/helpers/katello/hosts_and_hostgroups_helper.rb +48 -24
  9. data/app/lib/actions/katello/repository/clear.rb +2 -1
  10. data/app/lib/actions/katello/repository/clone_docker_content.rb +13 -7
  11. data/app/lib/actions/katello/repository/clone_to_environment.rb +1 -1
  12. data/app/lib/actions/katello/repository/clone_to_version.rb +1 -1
  13. data/app/lib/katello/util/docker_manifest_clause_generator.rb +44 -0
  14. data/app/lib/katello/util/package_filter.rb +24 -5
  15. data/app/models/katello/concerns/content_facet_host_extensions.rb +3 -1
  16. data/app/models/katello/concerns/host_managed_extensions.rb +0 -7
  17. data/app/models/katello/concerns/smart_proxy_extensions.rb +1 -1
  18. data/app/models/katello/content_view_docker_filter.rb +37 -0
  19. data/app/models/katello/content_view_docker_filter_rule.rb +23 -0
  20. data/app/models/katello/content_view_filter.rb +17 -4
  21. data/app/models/katello/content_view_puppet_environment.rb +6 -0
  22. data/app/models/katello/content_view_puppet_module.rb +5 -0
  23. data/app/models/katello/docker_manifest.rb +1 -1
  24. data/app/models/katello/glue/pulp/repo.rb +1 -1
  25. data/app/models/katello/host/content_facet.rb +2 -0
  26. data/app/views/dashboard/_content_views_widget.html.erb +1 -1
  27. data/app/views/dashboard/_subscription_status_widget.html.erb +1 -1
  28. data/app/views/dashboard/_subscription_widget.html.erb +1 -1
  29. data/app/views/foreman/job_templates/install_errata.erb +1 -1
  30. data/app/views/foreman/unattended/kickstart-katello-atomic.erb +10 -1
  31. data/app/views/foreman/unattended/kickstart-katello.erb +1 -1
  32. data/app/views/katello/api/v2/content_facet/base.json.rabl +5 -0
  33. data/app/views/katello/api/v2/content_facet/show.json.rabl +1 -1
  34. data/app/views/katello/api/v2/content_view_filters/base.json.rabl +5 -0
  35. data/app/views/katello/api/v2/docker_tags/show.json.rabl +1 -1
  36. data/app/views/katello/api/v2/gpg_keys/show.json.rabl +2 -4
  37. data/app/views/katello/providers/redhat/_repos.html.erb +4 -0
  38. data/app/views/overrides/activation_keys/_host_environment_select.html.erb +12 -10
  39. data/db/migrate/20160924213020_change_katello_widget_names.rb +21 -0
  40. data/db/migrate/20161102194100_create_content_view_docker_filter_rules.rb +13 -0
  41. data/db/migrate/20161214151548_move_content_source_id_to_content_facets.rb +38 -0
  42. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-details.html +11 -6
  43. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-view.factory.js +9 -10
  44. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.controller.js +1 -5
  45. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.routes.js +349 -221
  46. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-deletion.controller.js +5 -14
  47. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-activation-keys.controller.js +2 -2
  48. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-confirm.controller.js +8 -5
  49. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-content-hosts.controller.js +2 -2
  50. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion.controller.js +5 -5
  51. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/content-view-deletion.html +12 -17
  52. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-activation-keys.html +3 -5
  53. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-confirm.html +1 -3
  54. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-content-hosts.html +67 -71
  55. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-environments.html +1 -3
  56. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/content-view-composite-available-content-views.controller.js +3 -2
  57. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/content-view-composite-content-views-list.controller.js +2 -1
  58. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/views/content-view-composite-available-content-views.html +19 -15
  59. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/views/content-view-composite-content-views-list.html +65 -63
  60. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/views/content-view-composite.html +4 -4
  61. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-docker-repositories.controller.js +2 -2
  62. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-file-repositories.controller.js +1 -1
  63. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-ostree-repositories.controller.js +2 -2
  64. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-repositories.controller.js +1 -1
  65. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-details.controller.js +8 -124
  66. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-docker-repositories-list.controller.js +29 -20
  67. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-file-repositories-list.controller.js +1 -1
  68. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-ostree-repositories-list.controller.js +29 -20
  69. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-promotion.controller.js +6 -5
  70. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-publish.controller.js +4 -3
  71. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-repositories-list.controller.js +1 -1
  72. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-repositories.service.js +1 -1
  73. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-versions.controller.js +133 -25
  74. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/available-errata-filter.controller.js +6 -5
  75. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/available-package-group-filter.controller.js +8 -5
  76. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/date-type-errata-filter.controller.js +6 -3
  77. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/edit-filter.controller.js +4 -6
  78. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/errata-filter-list.controller.js +6 -5
  79. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/errata-filter.controller.js +0 -4
  80. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter-repositories.controller.js +11 -10
  81. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filters.controller.js +11 -9
  82. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/new-filter.controller.js +7 -6
  83. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/package-filter.controller.js +8 -8
  84. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/package-group-list-filter.controller.js +6 -5
  85. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/date-type-errata-filter.html +1 -3
  86. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/edit-filter.html +0 -1
  87. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/errata-filter-details.html +16 -21
  88. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/errata-filter.html +10 -10
  89. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filter-details.html +5 -45
  90. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filter-repositories.html +98 -104
  91. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filters.html +12 -21
  92. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/new-filter.html +53 -62
  93. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-filter-details.html +187 -179
  94. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-filter.html +26 -35
  95. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-group-filter-details.html +10 -13
  96. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-group-filter.html +8 -11
  97. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/histories/content-view-history.controller.js +1 -1
  98. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/histories/views/content-view-history.html +9 -7
  99. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-module-names.controller.js +3 -3
  100. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-module-versions.controller.js +15 -21
  101. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-modules.controller.js +8 -9
  102. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/views/content-view-puppet-module-names.html +28 -41
  103. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/views/content-view-puppet-module-versions.html +31 -28
  104. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/views/content-view-puppet-modules.html +6 -9
  105. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-copy.html +18 -0
  106. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-details-tasks.html +1 -3
  107. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-details.html +133 -160
  108. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-docker-repositories.html +40 -64
  109. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-file-repositories.html +78 -110
  110. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-info.html +29 -36
  111. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-ostree-repositories.html +78 -110
  112. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-promotion.html +1 -7
  113. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-publish.html +32 -36
  114. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-repositories.html +93 -123
  115. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-versions.html +71 -75
  116. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/new/content-view-new.controller.js +2 -3
  117. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/new/views/content-view-new.html +16 -20
  118. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version-content.controller.js +1 -1
  119. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-components.html +3 -9
  120. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-docker.html +2 -7
  121. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-errata.html +39 -44
  122. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-file.html +2 -7
  123. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-ostree-branches.html +2 -6
  124. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-package-groups.html +8 -13
  125. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-packages.html +2 -7
  126. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-puppet-modules.html +2 -7
  127. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-yum.html +2 -7
  128. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version.html +60 -75
  129. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/views/content-views.html +50 -5
  130. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/docker-tag-details.controller.js +1 -1
  131. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-environments.html +9 -1
  132. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-content-views.html +1 -1
  133. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/apply-errata-confirm.html +2 -2
  134. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-details.html +3 -13
  135. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-details.html +9 -4
  136. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html +9 -3
  137. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-details.html +17 -13
  138. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/puppet-modules-details-content-views.html +1 -1
  139. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-details.html +8 -3
  140. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/tasks-table.directive.js +2 -2
  141. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/tasks-index.html +1 -1
  142. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/tasks-table.html +35 -34
  143. data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/tasks.scss +0 -8
  144. data/lib/katello/engine.rb +7 -0
  145. data/lib/katello/plugin.rb +9 -8
  146. data/lib/katello/tasks/clean_published_repo_directories.rake +52 -0
  147. data/lib/katello/tasks/reimport.rake +2 -1
  148. data/lib/katello/tasks/upgrades/2.4/import_puppet_modules.rake +1 -0
  149. data/lib/katello/tasks/upgrades/3.0/update_subscription_facet_backend_data.rake +1 -1
  150. data/lib/katello/version.rb +1 -1
  151. metadata +11 -7
  152. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-breadcrumb.html +0 -18
  153. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/package-group-filter.controller.js +0 -16
  154. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/views/content-views-table-collapsed.html +0 -21
  155. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/views/content-views-table-full.html +0 -46
@@ -1,12 +1,6 @@
1
1
  <span page-title ng-model="contentView">{{ 'Promote Content View:' | translate }} {{ contentView.name }}</span>
2
2
 
3
3
  <div>
4
-
5
- <a ui-sref="content-views.details.versions({contentViewId: contentView.id})" >
6
- <i class="fa fa-double-angle-left"></i>
7
- {{ "Back to Version List" | translate }}
8
- </a>
9
-
10
4
  <h3 translate>Promote Version {{ version.version }}</h3>
11
5
 
12
6
  <p class="details" translate>
@@ -47,7 +41,7 @@
47
41
  Promote Version
48
42
  </button>
49
43
 
50
- <a ui-sref="content-views.details.versions" class="btn btn-default btn-lg" translate role="button">
44
+ <a ui-sref="content-view.versions" class="btn btn-default btn-lg" translate role="button">
51
45
  Cancel
52
46
  </a>
53
47
 
@@ -1,38 +1,34 @@
1
1
  <span page-title ng-model="contentView">{{ 'Publish Content View:' | translate }} {{ contentView.name }}</span>
2
2
 
3
- <div class="details details-full">
4
-
5
- <h3 translate>Publish New Version</h3>
6
-
7
- <p translate>
8
- A new version of {{ contentView.name }} will be created and promoted to the Library environment.
9
- It can be promoted to other environments from the Versions tab of this Content View.
10
- </p>
11
-
12
- <header class="details-header">
13
- <h3 translate>Version Details</h3>
14
- </header>
15
-
16
- <form name="versionForm" class="col-sm-5" role="form" novalidate>
17
-
18
- <div bst-form-group label="{{ 'Version' | translate }}">
19
- <span>{{ contentView['next_version'] }}</span>
20
- </div>
21
-
22
- <div bst-form-group label="{{ 'Description' | translate }}">
23
- <textarea id="description"
24
- name="description"
25
- ng-model="version.description"
26
- rows="10"
27
- tabindex="1">
28
- </textarea>
29
- </div>
30
-
31
- <div bst-form-buttons
32
- on-cancel="transitionTo('content-views.details.versions', {contentViewId: contentView.id})"
33
- on-save="publish(contentView)"
34
- working="working">
35
- </div>
36
- </form>
37
-
38
- </div>
3
+ <h3 translate>Publish New Version</h3>
4
+
5
+ <p translate>
6
+ A new version of {{ contentView.name }} will be created and promoted to the Library environment.
7
+ It can be promoted to other environments from the Versions tab of this Content View.
8
+ </p>
9
+
10
+ <header class="details-header">
11
+ <h3 translate>Version Details</h3>
12
+ </header>
13
+
14
+ <form name="versionForm" class="col-sm-5" role="form" novalidate>
15
+
16
+ <div bst-form-group label="{{ 'Version' | translate }}">
17
+ <span>{{ contentView['next_version'] }}</span>
18
+ </div>
19
+
20
+ <div bst-form-group label="{{ 'Description' | translate }}">
21
+ <textarea id="description"
22
+ name="description"
23
+ ng-model="version.description"
24
+ rows="10"
25
+ tabindex="1">
26
+ </textarea>
27
+ </div>
28
+
29
+ <div bst-form-buttons
30
+ on-cancel="transitionTo('content-view.versions', {contentViewId: contentView.id})"
31
+ on-save="publish(contentView)"
32
+ working="working">
33
+ </div>
34
+ </form>
@@ -1,138 +1,108 @@
1
1
  <span page-title ng-model="contentView">{{ 'Repositories for Content View:' | translate }} {{ contentView.name }}</span>
2
2
 
3
- <div class="details details-full">
4
-
3
+ <header data-block="sub-header">
5
4
  <h3 translate>
6
5
  Repository Selection
7
6
  </h3>
7
+ </header>
8
8
 
9
- <nav>
10
- <ul class="nav nav-tabs" ng-show="permitted('edit_content_views', contentView)">
11
- <li ng-class="{active: isState('content-views.details.repositories.yum.list')}">
12
- <a ui-sref="content-views.details.repositories.yum.list">
13
- <span translate>
14
- List/Remove
15
- </span>
16
- </a>
17
- </li>
18
-
19
- <li ng-class="{active: isState('content-views.details.repositories.yum.available')}" ng-show="!contentView.permissions.editable">
20
- <a ui-sref="content-views.details.repositories.yum.available" translate>
21
- Add
22
- </a>
23
- </li>
24
- </ul>
25
- </nav>
26
-
27
- <div class="details-header row">
28
- <div class="col-sm-8">
29
- <div class="input-group">
30
-
31
- <span class="input-group-addon">
32
- <select ng-model="product" ng-options="product.name for (id, product) in products">
33
- </select>
9
+ <nav>
10
+ <ul class="nav nav-tabs" ng-show="permitted('edit_content_views', contentView)">
11
+ <li ng-class="{active: isState('content-view.repositories.yum.list')}">
12
+ <a ui-sref="content-view.repositories.yum.list">
13
+ <span translate>
14
+ List/Remove
34
15
  </span>
16
+ </a>
17
+ </li>
35
18
 
36
- <input type="text"
37
- class="form-control filter-input"
38
- placeholder="{{ 'Filter' | translate }}"
39
- ng-model="repositorySearch"/>
40
-
41
- </div>
42
- </div>
19
+ <li ng-class="{active: isState('content-view.repositories.yum.available')}" ng-show="!contentView.permissions.editable">
20
+ <a ui-sref="content-view.repositories.yum.available" translate>
21
+ Add
22
+ </a>
23
+ </li>
24
+ </ul>
25
+ </nav>
43
26
 
44
- <div class="col-sm-4">
45
- <button class="btn btn-primary fr"
46
- ng-disabled="repositoriesTable.numSelected === 0"
47
- ng-show="isState('content-views.details.repositories.yum.list') && permitted('edit_content_views', contentView)"
48
- ng-click="removeRepositories(contentView)">
49
- <i class="fa fa-trash-o"></i>
50
- <span translate>Remove Repositories</span>
51
- </button>
52
- <button class="btn btn-primary fr"
53
- ng-disabled="repositoriesTable.numSelected === 0"
54
- ng-show="isState('content-views.details.repositories.yum.available') && permitted('edit_content_views', contentView)"
55
- ng-click="addRepositories(contentView)">
56
- <i class="fa fa-plus"></i>
57
- <span translate>Add Repositories</span>
58
- </button>
59
- </div>
27
+ <div data-extend-template="layouts/partials/table.html">
28
+ <div data-block="list-actions">
29
+ <button class="btn btn-primary"
30
+ ng-disabled="table.numSelected === 0"
31
+ ng-show="isState('content-view.repositories.yum.list') && permitted('edit_content_views', contentView)"
32
+ ng-click="removeRepositories(contentView)">
33
+ <span translate>Remove Repositories</span>
34
+ </button>
35
+ <button class="btn btn-primary"
36
+ ng-disabled="table.numSelected === 0"
37
+ ng-show="isState('content-view.repositories.yum.available') && permitted('edit_content_views', contentView)"
38
+ ng-click="addRepositories(contentView)">
39
+ <span translate>Add Repositories</span>
40
+ </button>
60
41
  </div>
61
42
 
62
- <div bst-table="repositoriesTable" class="nutupane">
43
+ <span data-block="no-rows-message">
44
+ <span ng-show="isState('content-view.repositories.yum.list')" translate>
45
+ There are currently no repositories associated with this Content View, you can add some by clicking on the "Add" tab above.
46
+ </span>
47
+ <span ng-show="isState('content-view.repositories.yum.available')">
48
+ <span translate>There are currently no repositories to add to this Content View,</span>
49
+ <a ui-sref="products" translate>add some repositories.</a>
50
+ </span>
51
+ </span>
63
52
 
64
- <div ng-show="repositoriesTable.rows.length === 0 && !repositoriesTable.working">
65
- <p bst-alert="info" ng-show="isState('content-views.details.repositories.yum.list')">
66
- <span translate>
67
- There are currently no repositories associated with this Content View, you can add some by clicking on the "Add" tab above.
68
- </span>
69
- </p>
70
- <p bst-alert="info" ng-show="isState('content-views.details.repositories.yum.available')">
71
- <span translate>There are currently no repositories to add to this Content View,</span>
72
- <a ui-sref="products" translate>add some repositories.</a>
73
- </p>
74
- </div>
53
+ <table data-block="table" class="table table-bordered table-striped">
54
+ <thead>
55
+ <tr bst-table-head row-select>
56
+ <th bst-table-column translate>Name</th>
57
+ <th bst-table-column translate>Product</th>
58
+ <th bst-table-column translate>Last Sync</th>
59
+ <th bst-table-column translate>Sync State</th>
60
+ <th bst-table-column translate>Content</th>
61
+ </tr>
62
+ </thead>
75
63
 
76
- <div class="loading-mask loading-mask-panel" ng-show="repositoriesTable.working">
77
- <i class="fa fa-spinner fa-spin"></i>
78
- {{ "Loading..." | translate }}
79
- </div>
80
-
81
- <table ng-show="repositoriesTable.rows.length > 0" class="table table-bordered table-striped">
82
- <thead>
83
- <tr bst-table-head row-select>
84
- <th bst-table-column translate>Name</th>
85
- <th bst-table-column translate>Product</th>
86
- <th bst-table-column translate>Last Sync</th>
87
- <th bst-table-column translate>Sync State</th>
88
- <th bst-table-column translate>Content</th>
89
- </tr>
90
- </thead>
91
-
92
- <tbody>
93
- <tr bst-table-row
94
- row-select="repository"
95
- ng-repeat="repository in repositoriesTable.rows | filter:repositorySearch | filter:repositoryFilter as filteredItems">
96
- <td bst-table-cell>
97
- <a ui-sref="product.repository.info({productId: repository.product.id, repositoryId: repository.id})">
98
- {{ repository.name }}
64
+ <tbody>
65
+ <tr bst-table-row
66
+ row-select="repository"
67
+ ng-repeat="repository in table.rows | filter:repositorySearch | filter:repositoryFilter as filteredItems">
68
+ <td bst-table-cell>
69
+ <a ui-sref="products.details.repositories.info({productId: repository.product.id, repositoryId: repository.id})">
70
+ {{ repository.name }}
71
+ </a>
72
+ </td>
73
+ <td bst-table-cell>{{ repository.product.name }}</td>
74
+ <td bst-table-cell>
75
+ <span ng-show="repository.url && repository.last_sync == null" translate>
76
+ Not Synced
77
+ </span>
78
+ <span ng-show="repository.url">
79
+ {{ repository.last_sync.ended_at | date:"short" }}
80
+ </span>
81
+ <span ng-hide="repository.url" translate>N/A</span>
82
+ </td>
83
+ <td bst-table-cell>
84
+ <span ng-show="repository.url">
85
+ <a href="/foreman_tasks/tasks/{{repository.last_sync.id}}">{{ repository.last_sync.result | capitalize }}</a>
86
+ </span>
87
+ <span ng-hide="repository.url" translate>N/A</span>
88
+ </td>
89
+ <td bst-table-cell>
90
+ <div>
91
+ <a ui-sref="products.repository.manage-content.packages({productId: repository.product.id, repositoryId: repository.id})"
92
+ ng-show="repository.content_type == 'yum'"
93
+ translate>
94
+ {{ repository.content_counts.rpm }} Packages
99
95
  </a>
100
- </td>
101
- <td bst-table-cell>{{ repository.product.name }}</td>
102
- <td bst-table-cell>
103
- <span ng-show="repository.url && repository.last_sync == null" translate>
104
- Not Synced
105
- </span>
106
- <span ng-show="repository.url">
107
- {{ repository.last_sync.ended_at | date:"short" }}
108
- </span>
109
- <span ng-hide="repository.url" translate>N/A</span>
110
- </td>
111
- <td bst-table-cell>
112
- <span ng-show="repository.url">
113
- <a href="/foreman_tasks/tasks/{{repository.last_sync.id}}">{{ repository.last_sync.result | capitalize }}</a>
114
- </span>
115
- <span ng-hide="repository.url" translate>N/A</span>
116
- </td>
117
- <td bst-table-cell>
118
- <div>
119
- <a ui-sref="product.repository.manage-content.packages({productId: repository.product.id, repositoryId: repository.id})"
120
- ng-show="repository.content_type == 'yum'"
121
- translate>
122
- {{ repository.content_counts.rpm }} Packages
123
- </a>
124
- </div>
125
- <div>
126
- <a ui-sref="errata.index({repositoryId: repository.id})"
127
- ng-show="repository.content_type == 'yum'"
128
- translate>
129
- {{ repository.content_counts.erratum }} Errata
130
- </a>
131
- </div>
132
- </td>
133
- </tr>
134
- </tbody>
135
- </table>
136
- </div>
137
-
96
+ </div>
97
+ <div>
98
+ <a ui-sref="errata.index({repositoryId: repository.id})"
99
+ ng-show="repository.content_type == 'yum'"
100
+ translate>
101
+ {{ repository.content_counts.erratum }} Errata
102
+ </a>
103
+ </div>
104
+ </td>
105
+ </tr>
106
+ </tbody>
107
+ </table>
138
108
  </div>
@@ -1,8 +1,6 @@
1
1
  <span page-title ng-model="contentView">{{ 'Versions for Content View:' | translate }} {{ contentView.name }}</span>
2
2
 
3
- <div data-extend-template="layouts/details-nutupane.html">
4
- <div data-block="messages"></div>
5
-
3
+ <div data-extend-template="layouts/partials/table.html">
6
4
  <span data-block="no-rows-message" translate>
7
5
  This Content View does not have any versions, create your first Content View Version by using the "Publish New Version" button on the right.
8
6
  </span>
@@ -10,9 +8,9 @@
10
8
  <span data-block="no-search-results-message" translate>
11
9
  Your search returned zero Content View.
12
10
  </span>
13
-
11
+
14
12
  <div data-block="table">
15
- <table class="table table-striped table-bordered" ng-show="detailsTable.rows.length > 0" bst-table="table">
13
+ <table class="table table-striped table-bordered" bst-table="table">
16
14
  <thead>
17
15
  <tr bst-table-head>
18
16
  <th bst-table-column><span translate>Version</span></th>
@@ -25,80 +23,78 @@
25
23
  </thead>
26
24
 
27
25
  <tbody>
28
- <tr bst-table-row ng-repeat="version in detailsTable.rows | filter:filterTerm">
29
- <td bst-table-cell translate>
30
- <a ui-sref="content-views.details.version.details({versionId: version.id})" >Version {{ version.version }}</a>
31
- </td>
32
- <td bst-table-cell >
33
- <a ng-href="/foreman_tasks/tasks/{{ version.last_event.task.id }}"
34
- ng-hide="hideProgress(version)">
26
+ <tr bst-table-row ng-repeat="version in table.rows">
27
+ <td bst-table-cell translate>
28
+ <a ui-sref="content-view.version.details({versionId: version.id})" >Version {{ version.version }}</a>
29
+ </td>
30
+ <td bst-table-cell >
31
+ <a ng-href="/foreman_tasks/tasks/{{ version.last_event.task.id }}"
32
+ ng-hide="hideProgress(version)">
35
33
 
36
- <div ng-class="{ active: taskInProgress(version) }"
37
- class="progress progress-striped">
38
- <span uib-progressbar animate="false" value="version.task.progressbar.value" type="{{version.task.progressbar.type}}"></span>
39
- </div>
34
+ <div ng-class="{ active: taskInProgress(version) }"
35
+ class="progress progress-striped">
36
+ <span uib-progressbar animate="false" value="version.task.progressbar.value" type="{{version.task.progressbar.type}}"></span>
37
+ </div>
40
38
 
41
- {{ status(version) }}
42
- </a>
39
+ {{ status(version) }}
40
+ </a>
43
41
 
44
- <span ng-show="hideProgress(version)">
45
- {{ historyText(version) }}
46
- ({{ version.last_event.created_at | date:'short' }})
47
- </span>
48
- </td>
49
- <td bst-table-cell>
50
- <ul>
51
- <li ng-repeat="environment in version.environments" ng-if="environment.permissions.readable">
52
- {{ environment.name }}
53
- </li>
54
- </ul>
55
- </td>
56
- <td bst-table-cell>
57
- <div translate ng-if="version.package_count && version.package_count > 0">
58
- {{ version.package_count }} Packages
59
- </div>
60
- <div ng-if="version.errata_counts.total && version.errata_counts.total > 0">
61
- <span translate>{{ version.errata_counts.total }} Errata</span>
62
- (<span errata-counts="version.errata_counts"></span>)
63
- </div>
64
- <div translate ng-if="version.puppet_module_count && version.puppet_module_count > 0">
65
- {{ version.puppet_module_count }} Puppet Modules
66
- </div>
67
- <div translate ng-if="version.docker_manifest_count && version.docker_manifest_count > 0">
68
- {{ version.docker_manifest_count }} Docker Manifests
69
- </div>
70
- <div translate ng-if="version.docker_tag_count && version.docker_tag_count > 0">
71
- {{ version.docker_tag_count }} Docker Tags
72
- </div>
73
- <div translate ng-if="version.ostree_branch_count && version.ostree_branch_count > 0">
74
- {{ version.ostree_branch_count }} OSTree Branches
75
- </div>
76
- <div translate ng-if="version.file_count && version.file_count > 0">
77
- {{ version.file_count }} Files
78
- </div>
79
- </td>
80
- <td bst-table-cell class="preserve-newlines">{{ version.description }}</td>
81
- <td class="col-sm-2">
82
- <button class="btn btn-default"
83
- ng-click="$state.go('content-views.details.promotion', {contentViewId: contentView.id, versionId: version.id})"
84
- ng-hide="denied('promote_or_remove_content_views', contentView)"
85
- ng-disabled="taskInProgress(version) || taskFailed(version) || pendingVersionTask">
86
- <i class="fa fa-share-alt"></i>
87
- <span translate>
88
- Promote
42
+ <span ng-show="hideProgress(version)">
43
+ {{ historyText(version) }}
44
+ ({{ version.last_event.created_at | date:'short' }})
89
45
  </span>
90
- </button>
91
- <button class="btn btn-default"
92
- ng-click="$state.go('content-views.details.version-deletion.environments', {contentViewId: contentView.id, versionId: version.id})"
93
- ng-hide="denied('promote_or_remove_content_views', contentView)"
94
- ng-disabled="taskInProgress(version) || taskFailed(version) || pendingVersionTask">
95
- <i class="fa fa-trash-o"></i>
96
- <span translate>
97
- Remove
98
- </span>
99
- </button>
100
- </td>
101
- </tr>
46
+ </td>
47
+ <td bst-table-cell>
48
+ <ul class="list-unstyled">
49
+ <li ng-repeat="environment in version.environments" ng-if="environment.permissions.readable">
50
+ {{ environment.name }}
51
+ </li>
52
+ </ul>
53
+ </td>
54
+ <td bst-table-cell>
55
+ <div translate ng-if="version.package_count && version.package_count > 0">
56
+ {{ version.package_count }} Packages
57
+ </div>
58
+ <div ng-if="version.errata_counts.total && version.errata_counts.total > 0">
59
+ <span translate>{{ version.errata_counts.total }} Errata</span>
60
+ (<span errata-counts="version.errata_counts"></span>)
61
+ </div>
62
+ <div translate ng-if="version.puppet_module_count && version.puppet_module_count > 0">
63
+ {{ version.puppet_module_count }} Puppet Modules
64
+ </div>
65
+ <div translate ng-if="version.docker_manifest_count && version.docker_manifest_count > 0">
66
+ {{ version.docker_manifest_count }} Docker Manifests
67
+ </div>
68
+ <div translate ng-if="version.docker_tag_count && version.docker_tag_count > 0">
69
+ {{ version.docker_tag_count }} Docker Tags
70
+ </div>
71
+ <div translate ng-if="version.ostree_branch_count && version.ostree_branch_count > 0">
72
+ {{ version.ostree_branch_count }} OSTree Branches
73
+ </div>
74
+ <div translate ng-if="version.file_count && version.file_count > 0">
75
+ {{ version.file_count }} Files
76
+ </div>
77
+ </td>
78
+ <td bst-table-cell class="preserve-newlines">{{ version.description }}</td>
79
+ <td class="col-sm-2">
80
+ <button class="btn btn-default"
81
+ ng-click="$state.go('content-view.promotion', {contentViewId: contentView.id, versionId: version.id})"
82
+ ng-hide="denied('promote_or_remove_content_views', contentView)"
83
+ ng-disabled="taskInProgress(version) || taskFailed(version) || pendingVersionTask">
84
+ <span translate>
85
+ Promote
86
+ </span>
87
+ </button>
88
+ <button class="btn btn-default"
89
+ ng-click="$state.go('content-view.version-deletion.environments', {contentViewId: contentView.id, versionId: version.id})"
90
+ ng-hide="denied('promote_or_remove_content_views', contentView)"
91
+ ng-disabled="taskInProgress(version) || taskFailed(version) || pendingVersionTask">
92
+ <span translate>
93
+ Remove
94
+ </span>
95
+ </button>
96
+ </td>
97
+ </tr>
102
98
  </tbody>
103
99
  </table>
104
100