katello 3.12.3 → 3.13.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.
- checksums.yaml +4 -4
- data/app/controllers/katello/api/rhsm/candlepin_dynflow_proxy_controller.rb +22 -3
- data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +2 -2
- data/app/controllers/katello/api/v2/activation_keys_controller.rb +32 -15
- data/app/controllers/katello/api/v2/ansible_collections_controller.rb +19 -0
- data/app/controllers/katello/api/v2/content_view_filters_controller.rb +3 -0
- data/app/controllers/katello/api/v2/content_view_puppet_modules_controller.rb +1 -0
- data/app/controllers/katello/api/v2/content_view_versions_controller.rb +1 -0
- data/app/controllers/katello/api/v2/content_views_controller.rb +1 -0
- data/app/controllers/katello/api/v2/environments_controller.rb +1 -0
- data/app/controllers/katello/api/v2/errata_controller.rb +2 -1
- data/app/controllers/katello/api/v2/gpg_keys_controller.rb +1 -0
- data/app/controllers/katello/api/v2/host_collections_controller.rb +1 -0
- data/app/controllers/katello/api/v2/host_debs_controller.rb +34 -0
- data/app/controllers/katello/api/v2/host_errata_controller.rb +51 -4
- data/app/controllers/katello/api/v2/host_packages_controller.rb +1 -0
- data/app/controllers/katello/api/v2/module_streams_controller.rb +1 -0
- data/app/controllers/katello/api/v2/organizations_controller.rb +1 -3
- data/app/controllers/katello/api/v2/products_bulk_actions_controller.rb +18 -0
- data/app/controllers/katello/api/v2/products_controller.rb +1 -0
- data/app/controllers/katello/api/v2/repositories_controller.rb +46 -11
- data/app/controllers/katello/api/v2/repository_sets_controller.rb +6 -5
- data/app/controllers/katello/api/v2/srpms_controller.rb +24 -0
- data/app/controllers/katello/api/v2/sync_plans_controller.rb +1 -0
- data/app/controllers/katello/application_controller.rb +1 -0
- data/app/controllers/katello/concerns/api/v2/bulk_hosts_extensions.rb +2 -2
- data/app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb +9 -0
- data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +2 -0
- data/app/controllers/katello/concerns/hosts_controller_extensions.rb +1 -1
- data/app/helpers/katello/concerns/dashboard_helper_extensions.rb +13 -10
- data/app/lib/actions/candlepin/activation_key/create.rb +7 -1
- data/app/lib/actions/candlepin/activation_key/update.rb +7 -1
- data/app/lib/actions/candlepin/owner/destroy.rb +1 -1
- data/app/lib/actions/candlepin/product/update.rb +17 -0
- data/app/lib/actions/helpers/output_propagator.rb +13 -0
- data/app/lib/actions/katello/activation_key/create.rb +4 -1
- data/app/lib/actions/katello/activation_key/update.rb +8 -2
- data/app/lib/actions/katello/content_view/publish.rb +22 -34
- data/app/lib/actions/katello/event_queue/poller_thread.rb +22 -9
- data/app/lib/actions/katello/host/update.rb +3 -1
- data/app/lib/actions/katello/host/upload_profiles.rb +16 -0
- data/app/lib/actions/katello/organization/destroy.rb +0 -11
- data/app/lib/actions/katello/product/update.rb +8 -0
- data/app/lib/actions/katello/product/update_http_proxy.rb +19 -0
- data/app/lib/actions/katello/provider/update.rb +6 -7
- data/app/lib/actions/katello/pulp_selector.rb +15 -5
- data/app/lib/actions/katello/repository/check_matching_content.rb +3 -1
- data/app/lib/actions/katello/repository/clone_contents.rb +19 -6
- data/app/lib/actions/katello/repository/clone_to_environment.rb +3 -5
- data/app/lib/actions/katello/repository/create.rb +3 -1
- data/app/lib/actions/katello/repository/destroy.rb +5 -4
- data/app/lib/actions/katello/repository/discover.rb +8 -8
- data/app/lib/actions/katello/repository/export.rb +1 -1
- data/app/lib/actions/katello/repository/filtered_index_content.rb +10 -5
- data/app/lib/actions/katello/repository/finish_upload.rb +8 -0
- data/app/lib/actions/katello/repository/import_upload.rb +5 -2
- data/app/lib/actions/katello/repository/index_content.rb +3 -2
- data/app/lib/actions/katello/repository/metadata_generate.rb +10 -4
- data/app/lib/actions/katello/repository/remove_content.rb +11 -3
- data/app/lib/actions/katello/repository/sync.rb +14 -7
- data/app/lib/actions/katello/repository/update.rb +11 -5
- data/app/lib/actions/katello/repository/update_http_proxy_details.rb +17 -0
- data/app/lib/actions/katello/repository/upload_files.rb +7 -3
- data/app/lib/actions/katello/subscription/update.rb +11 -0
- data/app/lib/actions/katello/upstream_subscriptions/remove_entitlement.rb +3 -0
- data/app/lib/actions/katello/upstream_subscriptions/remove_entitlements.rb +4 -1
- data/app/lib/actions/middleware/backend_services_check.rb +10 -2
- data/app/lib/actions/middleware/propagate_output.rb +15 -0
- data/app/lib/actions/middleware/pulp3_services_check.rb +9 -0
- data/app/lib/actions/pulp/abstract_async_task.rb +8 -1
- data/app/lib/actions/pulp/orchestration/repository/copy_all_units.rb +19 -0
- data/app/lib/actions/pulp/orchestration/repository/refresh.rb +14 -0
- data/app/lib/actions/pulp/orchestration/repository/refresh_if_needed.rb +13 -0
- data/app/lib/actions/pulp/orchestration/repository/remove_units.rb +14 -0
- data/app/lib/actions/pulp/orchestration/repository/sync.rb +17 -0
- data/app/lib/actions/pulp/repository/copy_all_units.rb +1 -1
- data/app/lib/actions/pulp/repository/create.rb +0 -1
- data/app/lib/actions/pulp/repository/refresh.rb +0 -5
- data/app/lib/actions/pulp/repository/remove_units.rb +1 -1
- data/app/lib/actions/pulp/repository/sync.rb +8 -14
- data/app/lib/actions/pulp3/abstract.rb +2 -1
- data/app/lib/actions/pulp3/abstract_async_task.rb +15 -6
- data/app/lib/actions/pulp3/orchestration/repository/copy_all_units.rb +55 -0
- data/app/lib/actions/pulp3/orchestration/repository/create.rb +1 -2
- data/app/lib/actions/pulp3/orchestration/repository/delete.rb +1 -2
- data/app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb +17 -2
- data/app/lib/actions/pulp3/orchestration/repository/remove_units.rb +18 -0
- data/app/lib/actions/pulp3/orchestration/repository/sync.rb +19 -0
- data/app/lib/actions/pulp3/orchestration/repository/update.rb +15 -0
- data/app/lib/actions/pulp3/repository/copy_content.rb +19 -0
- data/app/lib/actions/pulp3/repository/copy_version.rb +19 -0
- data/app/lib/actions/pulp3/repository/create_publication.rb +3 -2
- data/app/lib/actions/pulp3/repository/presenters/abstract_sync_presenter.rb +42 -0
- data/app/lib/actions/pulp3/repository/presenters/content_unit_presenter.rb +57 -0
- data/app/lib/actions/pulp3/repository/refresh_distribution.rb +7 -3
- data/app/lib/actions/pulp3/repository/remove_units.rb +23 -0
- data/app/lib/actions/pulp3/repository/save_distribution_references.rb +6 -4
- data/app/lib/actions/pulp3/repository/save_publication.rb +5 -4
- data/app/lib/actions/pulp3/repository/save_version.rb +8 -4
- data/app/lib/actions/pulp3/repository/sync.rb +55 -0
- data/app/lib/actions/pulp3/repository/{delete_publisher.rb → update_distributions.rb} +5 -5
- data/app/lib/actions/pulp3/repository/{create_publisher.rb → update_remote.rb} +2 -2
- data/app/lib/actions/pulp3/repository/update_repository.rb +16 -0
- data/app/lib/katello/errors.rb +9 -0
- data/app/lib/katello/resources/candlepin/activation_key.rb +5 -4
- data/app/lib/katello/resources/candlepin/product.rb +4 -0
- data/app/lib/katello/resources/candlepin/upstream_consumer.rb +11 -0
- data/app/lib/katello/resources/candlepin/upstream_pool.rb +6 -2
- data/app/lib/katello/resources/cdn.rb +3 -16
- data/app/lib/katello/util/cdn_var_substitutor.rb +0 -3
- data/app/lib/katello/util/http_proxy.rb +9 -9
- data/app/lib/katello/validators/hostgroup_kickstart_repository_validator.rb +1 -1
- data/app/models/katello/activation_key.rb +14 -0
- data/app/models/katello/activation_key_purpose_addon.rb +6 -0
- data/app/models/katello/ansible_collection.rb +32 -0
- data/app/models/katello/candlepin/repository_mapper.rb +1 -1
- data/app/models/katello/concerns/host_managed_extensions.rb +3 -0
- data/app/models/katello/concerns/http_proxy_extensions.rb +60 -0
- data/app/models/katello/concerns/location_extensions.rb +8 -0
- data/app/models/katello/concerns/organization_extensions.rb +9 -0
- data/app/models/katello/concerns/pulp_database_unit.rb +56 -81
- data/app/models/katello/concerns/setting_extensions.rb +14 -0
- data/app/models/katello/concerns/smart_proxy_extensions.rb +27 -11
- data/app/models/katello/concerns/subscription_facet_host_extensions.rb +8 -1
- data/app/models/katello/content_view.rb +4 -0
- data/app/models/katello/content_view_filter.rb +4 -8
- data/app/models/katello/docker_tag.rb +11 -10
- data/app/models/katello/erratum.rb +22 -0
- data/app/models/katello/event.rb +2 -0
- data/app/models/katello/events/auto_publish_composite_view.rb +41 -0
- data/app/models/katello/glue/pulp/repo.rb +0 -15
- data/app/models/katello/host/content_facet.rb +35 -4
- data/app/models/katello/host/subscription_facet.rb +14 -16
- data/app/models/katello/host_installed_deb.rb +7 -0
- data/app/models/katello/installed_deb.rb +10 -0
- data/app/models/katello/ping.rb +45 -10
- data/app/models/katello/product_content.rb +1 -1
- data/app/models/katello/purpose_addon.rb +11 -0
- data/app/models/katello/repository.rb +52 -41
- data/app/models/katello/repository_ansible_collection.rb +6 -0
- data/app/models/katello/repository_content_view_filter.rb +7 -0
- data/app/models/katello/rhsm_fact_parser.rb +11 -1
- data/app/models/katello/root_repository.rb +46 -4
- data/app/models/katello/srpm.rb +4 -0
- data/app/models/katello/subscription_facet_purpose_addon.rb +6 -0
- data/app/models/katello/yum_metadata_file.rb +3 -3
- data/app/models/setting/content.rb +32 -7
- data/app/overrides/add_about_page.rb +0 -7
- data/app/services/cert/certs.rb +1 -1
- data/app/services/katello/candlepin/consumer.rb +4 -0
- data/app/services/katello/event_queue.rb +33 -3
- data/app/services/katello/pulp/content_counts_calculator.rb +6 -0
- data/app/services/katello/pulp/docker_manifest.rb +1 -2
- data/app/services/katello/pulp/docker_manifest_list.rb +0 -1
- data/app/services/katello/pulp/file_unit.rb +1 -1
- data/app/services/katello/pulp/pulp_content_unit.rb +43 -0
- data/app/services/katello/pulp/repository.rb +32 -5
- data/app/services/katello/pulp/repository/file.rb +6 -1
- data/app/services/katello/pulp/repository/yum.rb +6 -6
- data/app/services/katello/pulp/rpm.rb +1 -1
- data/app/services/katello/pulp/srpm.rb +1 -1
- data/app/services/katello/pulp3/ansible_collection.rb +31 -0
- data/app/services/katello/pulp3/docker_blob.rb +17 -0
- data/app/services/katello/pulp3/docker_manifest.rb +36 -0
- data/app/services/katello/pulp3/docker_manifest_list.rb +30 -0
- data/app/services/katello/pulp3/docker_tag.rb +28 -0
- data/app/services/katello/pulp3/file_unit.rb +25 -0
- data/app/services/katello/pulp3/pulp_content_unit.rb +75 -0
- data/app/services/katello/pulp3/repository.rb +160 -47
- data/app/services/katello/pulp3/repository/ansible_collection.rb +49 -0
- data/app/services/katello/pulp3/repository/docker.rb +55 -0
- data/app/services/katello/pulp3/repository/file.rb +35 -25
- data/app/services/katello/repository_type.rb +15 -5
- data/app/services/katello/repository_type_manager.rb +32 -1
- data/app/views/dashboard/_subscription_widget.html.erb +7 -7
- data/app/views/foreman/smart_proxies/_content_tab.html.erb +5 -1
- data/app/views/katello/api/v2/activation_keys/base.json.rabl +5 -1
- data/app/views/katello/api/v2/ansible_collections/base.json.rabl +7 -0
- data/app/views/katello/api/v2/ansible_collections/index.json.rabl +7 -0
- data/app/views/katello/api/v2/ansible_collections/show.json.rabl +3 -0
- data/app/views/katello/api/v2/host_debs/base.json.rabl +4 -0
- data/app/views/katello/api/v2/host_debs/index.json.rabl +7 -0
- data/app/views/katello/api/v2/ping/show.json.rabl +2 -1
- data/app/views/katello/api/v2/repositories/base.json.rabl +3 -2
- data/app/views/katello/api/v2/repositories/show.json.rabl +8 -1
- data/app/views/katello/api/v2/srpms/index.json.rabl +7 -0
- data/app/views/katello/api/v2/srpms/show.json.rabl +5 -0
- data/app/views/katello/api/v2/subscription_facet/base.json.rabl +5 -1
- data/config/katello.yaml.example +1 -0
- data/config/routes/api/rhsm.rb +1 -0
- data/config/routes/api/v2.rb +16 -0
- data/config/routes/overrides.rb +4 -0
- data/db/migrate/20180502155123_add_installed_deb.rb +23 -0
- data/db/migrate/20190513162209_drop_repository_reference_publisher_href.rb +5 -0
- data/db/migrate/20190605014649_add_purpose_addons.rb +29 -0
- data/db/migrate/20190617142328_create_katello_ansible_collections.rb +25 -0
- data/db/migrate/20190618034438_add_ansible_collection_whitelist_to_katello_root_repositories.rb +5 -0
- data/db/migrate/20190619192151_add_activation_key_system_purpose_attributes.rb +14 -0
- data/db/migrate/20190701174401_add_http_proxy_policy_to_repository_root.rb +12 -0
- data/db/migrate/20190701192616_add_http_proxy_to_repository_root.rb +6 -0
- data/db/migrate/20190702182118_add_metadata_process_after_to_katello_event.rb +6 -0
- data/db/migrate/20190708195809_remove_all_manifest_downloaded.rb +11 -0
- data/db/migrate/20190723171639_update_content_view_filters_repositories_join_table.rb +11 -0
- data/db/seeds.d/115-http_proxy.rb +25 -0
- data/engines/bastion/app/views/bastion/layouts/assets.html.erb +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-details-info.controller.js +15 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-details.controller.js +69 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-info.html +39 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion-katello-bootstrap.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion_katello.js +3 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-repository-sets-modal.controller.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-errata-modal.html +1 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.routes.js +26 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-debs-actions.controller.js +14 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-debs-installed.controller.js +77 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-debs.controller.js +63 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-errata.controller.js +18 -21
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-debs-actions.html +62 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-debs-installed.html +52 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-debs.html +9 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-details.html +21 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-publish.html +1 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version-content.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-yum.html +4 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-debs.factory.js +20 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host.factory.js +9 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/http-proxies/http-proxies.module.js +14 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/http-proxies/http-proxy.factory.js +21 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/product-bulk-action.factory.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/products-bulk-http-proxy-modal.controller.js +77 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/views/products-bulk-http-proxy-modal.html +57 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +25 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.filter.js +13 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +75 -29
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/http-proxy-service.js +53 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +18 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +42 -16
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +7 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.controller.js +16 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products.html +6 -0
- data/lib/katello.rb +0 -1
- data/lib/katello/engine.rb +2 -0
- data/lib/katello/permission_creator.rb +7 -2
- data/lib/katello/permissions/host_permissions.rb +3 -0
- data/lib/katello/plugin.rb +3 -2
- data/lib/katello/repository_types/ansible_collection.rb +8 -0
- data/lib/katello/repository_types/deb.rb +2 -1
- data/lib/katello/repository_types/docker.rb +23 -4
- data/lib/katello/repository_types/file.rb +7 -1
- data/lib/katello/repository_types/ostree.rb +2 -1
- data/lib/katello/repository_types/puppet.rb +2 -1
- data/lib/katello/repository_types/yum.rb +3 -2
- data/lib/katello/tasks/clean_published_repo_directories.rake +1 -1
- data/lib/katello/tasks/delete_orphaned_content.rake +16 -5
- data/lib/katello/tasks/jenkins.rake +2 -0
- data/lib/katello/tasks/update_content_default_http_proxy.rake +69 -0
- data/lib/katello/version.rb +1 -1
- data/package.json +10 -22
- data/webpack/{move_to_foreman/__mocks__ → __mocks__/foremanJS}/foreman_toast_notifications.js +0 -0
- data/webpack/__mocks__/foremanReact/common/helpers.js +3 -6
- data/webpack/__mocks__/foremanReact/common/keyCodes.js +8 -0
- data/webpack/__mocks__/foremanReact/common/urlHelpers.js +7 -0
- data/webpack/__mocks__/foremanReact/components/Settings/SettingsActions.js +4 -0
- data/webpack/__mocks__/foremanReact/components/Settings/SettingsConstants.js +2 -0
- data/webpack/__mocks__/foremanReact/components/common/Fill/GlobalFill.js +3 -0
- data/webpack/__mocks__/foremanReact/components/common/ModalProgressBar.js +8 -0
- data/webpack/components/SelectOrg/SetOrganization.js +11 -19
- data/webpack/components/WithOrganization/__snapshots__/withOrganization.test.js.snap +1 -3
- data/webpack/components/WithOrganization/withOrganization.js +2 -2
- data/webpack/components/WithOrganization/withOrganization.test.js +2 -2
- data/webpack/components/extensions/about/SystemStatuses.js +55 -0
- data/webpack/components/extensions/about/SystemStatusesActions.js +16 -0
- data/webpack/components/extensions/about/SystemStatusesConsts.js +3 -0
- data/webpack/components/extensions/about/SystemStatusesReducer.js +26 -0
- data/webpack/components/extensions/about/SystemStatusesSelectors.js +3 -0
- data/webpack/components/extensions/about/__tests__/SystemStatuses.fixtures.js +20 -0
- data/webpack/components/extensions/about/__tests__/SystemStatuses.test.js +14 -0
- data/webpack/components/extensions/about/__tests__/SystemStatusesReducer.test.js +32 -0
- data/webpack/components/extensions/about/__tests__/__snapshots__/SystemStatuses.test.js.snap +156 -0
- data/webpack/components/extensions/about/__tests__/__snapshots__/SystemStatusesReducer.test.js.snap +47 -0
- data/webpack/components/extensions/about/index.js +19 -0
- data/webpack/components/extensions/reducers.js +6 -0
- data/webpack/containers/Application/config.js +4 -10
- data/webpack/fills_index.js +10 -0
- data/webpack/move_to_foreman/common/helpers.js +0 -20
- data/webpack/move_to_foreman/components/common/table/components/TableSelectionCell.js +1 -0
- data/webpack/move_to_foreman/components/common/table/formatters/EntitlementsInlineEditFormatter.js +3 -3
- data/webpack/move_to_pf/LoadingState/LoadingState.js +1 -0
- data/webpack/move_to_pf/OptionTooltip/OptionTooltip.scss +2 -1
- data/webpack/move_to_pf/TypeAhead/TypeAhead.js +3 -4
- data/webpack/redux/actions/RedHatRepositories/helpers.js +6 -1
- data/webpack/redux/reducers/index.js +2 -0
- data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetailInfo.js +1 -0
- data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetails.js +1 -0
- data/webpack/scenes/ModuleStreams/Details/Profiles/TableSchema.js +1 -0
- data/webpack/scenes/ModuleStreams/Details/Profiles/__tests__/ProfileRpmsCellFormatter.test.js +0 -2
- data/webpack/scenes/ModuleStreams/Details/Repositories/TableSchema.js +3 -2
- data/webpack/scenes/ModuleStreams/Details/index.js +1 -1
- data/webpack/scenes/ModuleStreams/ModuleStreamsPage.js +2 -0
- data/webpack/scenes/ModuleStreams/ModuleStreamsTable.js +2 -0
- data/webpack/scenes/ModuleStreams/ModuleStreamsTableSchema.js +3 -2
- data/webpack/scenes/ModuleStreams/__tests__/ModuleStreamPage.test.js +0 -1
- data/webpack/scenes/ModuleStreams/__tests__/ModuleStreamsTable.test.js +0 -1
- data/webpack/scenes/ModuleStreams/index.js +1 -1
- data/webpack/scenes/RedHatRepositories/components/EnabledRepository/EnabledRepository.js +2 -3
- data/webpack/scenes/RedHatRepositories/components/EnabledRepository/EnabledRepositoryContent.js +1 -0
- data/webpack/scenes/RedHatRepositories/components/RecommendedRepositorySetsToggler.js +1 -0
- data/webpack/scenes/RedHatRepositories/components/RecommendedRepositorySetsToggler.scss +1 -1
- data/webpack/scenes/RedHatRepositories/components/RepositorySetRepositories.js +1 -0
- data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository/RepositorySetRepository.js +3 -4
- data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository/__test__/RepositorySetRepository.test.js +0 -2
- data/webpack/scenes/RedHatRepositories/components/SearchBar.js +1 -0
- data/webpack/scenes/RedHatRepositories/helpers.js +1 -1
- data/webpack/scenes/RedHatRepositories/index.js +3 -2
- data/webpack/scenes/RedHatRepositories/index.scss +1 -1
- data/webpack/scenes/Subscriptions/Details/SubscriptionDetailAssociations.js +3 -3
- data/webpack/scenes/Subscriptions/Details/SubscriptionDetailProductContent.js +1 -0
- data/webpack/scenes/Subscriptions/Details/SubscriptionDetailProducts.js +1 -0
- data/webpack/scenes/Subscriptions/Details/SubscriptionDetails.js +1 -2
- data/webpack/scenes/Subscriptions/Details/__tests__/SubscriptionDetails.test.js +0 -1
- data/webpack/scenes/Subscriptions/Details/index.js +1 -1
- data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +1 -0
- data/webpack/scenes/Subscriptions/Manifest/__tests__/ManageManifestModal.test.js +1 -2
- data/webpack/scenes/Subscriptions/SubscriptionReducer.js +1 -1
- data/webpack/scenes/Subscriptions/SubscriptionsPage.js +3 -2
- data/webpack/scenes/Subscriptions/SubscriptionsPage.scss +1 -2
- data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsPage.js +9 -9
- data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsTableSchema.js +2 -2
- data/webpack/scenes/Subscriptions/UpstreamSubscriptions/__tests__/UpstreamSubscriptionsPage.test.js +0 -1
- data/webpack/scenes/Subscriptions/UpstreamSubscriptions/index.js +1 -1
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsPage.test.js +1 -2
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsReducer.test.js +2 -1
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +2 -1
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionTypeFormatter.js +3 -2
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTable.js +1 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTableSchema.js +3 -2
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/SubscriptionsTable.test.js +1 -1
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/components/Dialogs/DeleteDialog.js +1 -1
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/components/Dialogs/InputsErrorsDialog.js +1 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/components/Dialogs/UnsavedChangesDialog.js +1 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/components/Dialogs/UpdateDialog.js +1 -1
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/components/Table.js +1 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/SubscriptionsToolbar.js +1 -0
- data/webpack/scenes/Subscriptions/index.js +1 -1
- data/webpack/scenes/Tasks/helpers.js +5 -6
- metadata +161 -20
- data/app/lib/actions/katello/repository/clear.rb +0 -11
- data/app/views/overrides/about/_system_status.html.erb +0 -19
- data/webpack/move_to_foreman/Settings/SettingsActions.js +0 -28
- data/webpack/move_to_foreman/Settings/SettingsConstants.js +0 -3
- data/webpack/move_to_foreman/Settings/__tests__/SettingsActions.test.js +0 -41
- data/webpack/move_to_foreman/Settings/__tests__/settings.fixtures.js +0 -34
- data/webpack/move_to_foreman/components/common/ModalProgressBar/ModalProgressBar.js +0 -48
- data/webpack/move_to_foreman/components/common/ModalProgressBar/ModalProgressBar.scss +0 -15
- data/webpack/move_to_foreman/components/common/ModalProgressBar/__tests__/ModalProgressBar.test.js +0 -22
- data/webpack/move_to_foreman/components/common/ModalProgressBar/__tests__/__snapshots__/ModalProgressBar.test.js.snap +0 -60
- data/webpack/move_to_foreman/components/common/ModalProgressBar/index.js +0 -4
- data/webpack/move_to_foreman/foreman_toast_notifications.js +0 -22
@@ -1,5 +1,9 @@
|
|
1
|
-
attributes :id, :uuid, :last_checkin, :service_level, :release_version, :autoheal, :registered_at, :registered_through, :purpose_role, :purpose_usage
|
1
|
+
attributes :id, :uuid, :last_checkin, :service_level, :release_version, :autoheal, :registered_at, :registered_through, :purpose_role, :purpose_usage
|
2
2
|
|
3
3
|
child :user => :user do
|
4
4
|
attributes :id, :login
|
5
5
|
end
|
6
|
+
|
7
|
+
node :purpose_addons do |sub|
|
8
|
+
sub.purpose_addons.pluck(:name)
|
9
|
+
end
|
data/config/katello.yaml.example
CHANGED
data/config/routes/api/rhsm.rb
CHANGED
@@ -47,6 +47,7 @@ Katello::Engine.routes.draw do
|
|
47
47
|
match '/consumers/:id/profiles/' => 'candlepin_dynflow_proxy#upload_profiles', :via => :put
|
48
48
|
match '/consumers/:id/profile/' => 'candlepin_dynflow_proxy#upload_package_profile', :via => :put
|
49
49
|
match '/consumers/:id/packages/' => 'candlepin_dynflow_proxy#upload_package_profile', :via => :put
|
50
|
+
match '/systems/:id/deb_package_profile' => 'candlepin_dynflow_proxy#deb_package_profile', :via => :put
|
50
51
|
match '/consumers/:id/tracer/' => 'candlepin_proxies#upload_tracer_profile', :via => :put
|
51
52
|
match '/consumers/:id/checkin/' => 'candlepin_proxies#checkin', :via => :put
|
52
53
|
match '/consumers/:id' => 'candlepin_proxies#facts', :via => :put
|
data/config/routes/api/v2.rb
CHANGED
@@ -122,6 +122,13 @@ Katello::Engine.routes.draw do
|
|
122
122
|
end
|
123
123
|
end
|
124
124
|
|
125
|
+
api_resources :ansible_collections, :only => [:index, :show] do
|
126
|
+
collection do
|
127
|
+
get :auto_complete_search
|
128
|
+
get :compare
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
125
132
|
api_resources :ostree_branches, :only => [:index, :show] do
|
126
133
|
collection do
|
127
134
|
get :auto_complete_search
|
@@ -295,6 +302,13 @@ Katello::Engine.routes.draw do
|
|
295
302
|
end
|
296
303
|
end
|
297
304
|
|
305
|
+
api_resources :srpms, :only => [:index, :show], :controller => 'srpms' do
|
306
|
+
collection do
|
307
|
+
get :auto_complete_search
|
308
|
+
get :compare
|
309
|
+
end
|
310
|
+
end
|
311
|
+
|
298
312
|
api_resources :subscriptions, :only => [:index, :show] do
|
299
313
|
collection do
|
300
314
|
get :auto_complete_search
|
@@ -355,6 +369,7 @@ Katello::Engine.routes.draw do
|
|
355
369
|
api_resources :docker_tags, :only => [:index, :show]
|
356
370
|
api_resources :debs, :only => [:index, :show]
|
357
371
|
api_resources :module_streams, :only => [:index, :show]
|
372
|
+
api_resources :ansible_collections, :only => [:index, :show]
|
358
373
|
|
359
374
|
api_resources :ostree_branches, :only => [:index, :show]
|
360
375
|
|
@@ -397,6 +412,7 @@ Katello::Engine.routes.draw do
|
|
397
412
|
match '/bulk/destroy' => 'products_bulk_actions#destroy_products', :via => :put
|
398
413
|
match '/bulk/sync' => 'products_bulk_actions#sync_products', :via => :put
|
399
414
|
match '/bulk/sync_plan' => 'products_bulk_actions#update_sync_plans', :via => :put
|
415
|
+
match '/bulk/http_proxy' => 'products_bulk_actions#update_http_proxy', :via => :put
|
400
416
|
end
|
401
417
|
end
|
402
418
|
|
data/config/routes/overrides.rb
CHANGED
@@ -96,6 +96,10 @@ Foreman::Application.routes.draw do
|
|
96
96
|
get :auto_complete_search, :on => :collection
|
97
97
|
end
|
98
98
|
|
99
|
+
resources :debs, :only => [:index], :controller => :host_debs do
|
100
|
+
get :auto_complete_search, :on => :collection
|
101
|
+
end
|
102
|
+
|
99
103
|
resources :subscriptions, :only => [:index], :controller => :host_subscriptions do
|
100
104
|
collection do
|
101
105
|
put :auto_attach
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class AddInstalledDeb < ActiveRecord::Migration[4.2]
|
2
|
+
def change
|
3
|
+
create_table "katello_installed_debs" do |t|
|
4
|
+
t.string 'name', :null => false, :limit => 255
|
5
|
+
t.string 'version', :null => false, :limit => 255
|
6
|
+
t.string 'architecture', :null => false, :limit => 255
|
7
|
+
end
|
8
|
+
|
9
|
+
create_table "katello_host_installed_debs" do |t|
|
10
|
+
t.references 'host', :null => false, :index => true
|
11
|
+
t.references 'installed_deb', :null => false, :index => true
|
12
|
+
end
|
13
|
+
|
14
|
+
add_foreign_key "katello_host_installed_debs", "hosts",
|
15
|
+
:name => "katello_host_installed_debs_host_id", :column => "host_id"
|
16
|
+
|
17
|
+
add_foreign_key "katello_host_installed_debs", "katello_installed_debs",
|
18
|
+
:name => "katello_host_installed_debs_installed_deb_id", :column => "installed_deb_id"
|
19
|
+
|
20
|
+
add_index :katello_installed_debs, [:name, :version, :architecture], :unique => true, :name => :katello_installed_debs_n_id_v_id_a_id
|
21
|
+
add_index :katello_host_installed_debs, [:host_id, :installed_deb_id], :unique => true, :name => :katello_host_installed_debs_h_id_ip_id
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
class AddPurposeAddons < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
|
+
create_table :katello_purpose_addons do |t|
|
4
|
+
t.string :name, null: false
|
5
|
+
end
|
6
|
+
|
7
|
+
create_table :katello_subscription_facet_purpose_addons do |t|
|
8
|
+
t.references :purpose_addon, index: { name: :katello_sub_facet_purpose_addons_paid }
|
9
|
+
t.references :subscription_facet, index: { name: :katello_sub_facet_purpose_addons_sfid }
|
10
|
+
end
|
11
|
+
|
12
|
+
add_foreign_key :katello_subscription_facet_purpose_addons, :katello_subscription_facets, column: :subscription_facet_id, name: :katello_sub_facet_purpose_addon_facet_id
|
13
|
+
add_foreign_key :katello_subscription_facet_purpose_addons, :katello_purpose_addons, column: :purpose_addon_id, name: :katello_sub_facet_purpose_addon_purpose_addon_id
|
14
|
+
|
15
|
+
Katello::Host::SubscriptionFacet.pluck(:id, :purpose_addons).each do |facet|
|
16
|
+
yaml_string = facet[1]
|
17
|
+
next if yaml_string.nil?
|
18
|
+
|
19
|
+
parsed = YAML.parse(yaml_string)
|
20
|
+
addon_names = parsed.root.children.map(&:value)
|
21
|
+
addon_names.each do |addon|
|
22
|
+
purpose_addon = Katello::PurposeAddon.find_or_create_by(name: addon)
|
23
|
+
Katello::SubscriptionFacetPurposeAddon.create(purpose_addon_id: purpose_addon.id, subscription_facet_id: facet[0])
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
remove_column :katello_subscription_facets, :purpose_addons, :text
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class CreateKatelloAnsibleCollections < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
|
+
create_table :katello_ansible_collections do |t|
|
4
|
+
t.string :pulp_id, :null => false, :limit => 255
|
5
|
+
t.string :checksum
|
6
|
+
t.string :name
|
7
|
+
t.string :namespace
|
8
|
+
t.string :version
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
|
12
|
+
add_index :katello_ansible_collections, :pulp_id, :unique => true, :name => 'katello_ansible_collections_pulp_id_index'
|
13
|
+
|
14
|
+
create_table "katello_repository_ansible_collections" do |t|
|
15
|
+
t.references :ansible_collection, :null => false, index: { :name => 'index_katello_repo_ansible_collections' }
|
16
|
+
t.references :repository, :null => false
|
17
|
+
t.timestamps
|
18
|
+
end
|
19
|
+
|
20
|
+
add_index :katello_repository_ansible_collections, [:ansible_collection_id, :repository_id], :unique => true, :name => 'repository_ansible_collection_ids'
|
21
|
+
|
22
|
+
add_foreign_key "katello_repository_ansible_collections", "katello_ansible_collections", :column => "ansible_collection_id"
|
23
|
+
add_foreign_key "katello_repository_ansible_collections", "katello_repositories", :column => "repository_id"
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class AddActivationKeySystemPurposeAttributes < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
|
+
create_table :katello_activation_key_purpose_addons do |t|
|
4
|
+
t.references :purpose_addon, index: { name: :katello_activation_key_purpose_addons_paid }
|
5
|
+
t.references :activation_key, index: { name: :katello_activation_key_purpose_addons_akid }
|
6
|
+
end
|
7
|
+
|
8
|
+
add_column :katello_activation_keys, :purpose_role, :string
|
9
|
+
add_column :katello_activation_keys, :purpose_usage, :string
|
10
|
+
|
11
|
+
add_foreign_key :katello_activation_key_purpose_addons, :katello_activation_keys, column: :activation_key_id, name: :katello_act_key_purpose_addon_act_key_id
|
12
|
+
add_foreign_key :katello_activation_key_purpose_addons, :katello_purpose_addons, column: :purpose_addon_id, name: :katello_act_key_purpose_addon_purpose_addon_id
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class AddHttpProxyPolicyToRepositoryRoot < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
|
+
add_column :katello_root_repositories, :http_proxy_policy, :string,
|
4
|
+
default: Katello::RootRepository::GLOBAL_DEFAULT_HTTP_PROXY
|
5
|
+
|
6
|
+
Katello::RootRepository.where(ignore_global_proxy: true).each do |repo|
|
7
|
+
repo.update(http_proxy_policy: Katello::RootRepository::NO_DEFAULT_HTTP_PROXY)
|
8
|
+
end
|
9
|
+
|
10
|
+
remove_column :katello_root_repositories, :ignore_global_proxy
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class RemoveAllManifestDownloaded < ActiveRecord::Migration[5.2]
|
2
|
+
def up
|
3
|
+
remove_column :katello_docker_manifests, :downloaded
|
4
|
+
remove_column :katello_docker_manifest_lists, :downloaded
|
5
|
+
end
|
6
|
+
|
7
|
+
def down
|
8
|
+
add_column :katello_docker_manifests, :downloaded, :boolean
|
9
|
+
add_column :katello_docker_manifest_lists, :downloaded, :boolean
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class UpdateContentViewFiltersRepositoriesJoinTable < ActiveRecord::Migration[5.2]
|
2
|
+
def up
|
3
|
+
rename_table :katello_content_view_filters_repositories, :katello_repository_content_view_filters
|
4
|
+
add_column :katello_repository_content_view_filters, :id, :primary_key
|
5
|
+
end
|
6
|
+
|
7
|
+
def down
|
8
|
+
rename_table :katello_repository_content_view_filters, :katello_content_view_filters_repositories
|
9
|
+
remove_column :katello_content_view_filters_repositories, :id
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
if (SETTINGS[:katello][:cdn_proxy] && SETTINGS[:katello][:cdn_proxy][:host])
|
2
|
+
config = SETTINGS[:katello][:cdn_proxy]
|
3
|
+
uri = URI(config[:host])
|
4
|
+
uri.user = nil
|
5
|
+
uri.password = nil
|
6
|
+
uri.port = config[:port] if config[:port]
|
7
|
+
|
8
|
+
name = uri.host
|
9
|
+
if (http_proxy = ::HttpProxy.where(name: name).first)
|
10
|
+
http_proxy.update_attributes!(url: uri.to_s,
|
11
|
+
username: config[:user],
|
12
|
+
password: config[:password])
|
13
|
+
else
|
14
|
+
::HttpProxy.create!(name: name,
|
15
|
+
url: uri.to_s,
|
16
|
+
username: config[:user],
|
17
|
+
password: config[:password])
|
18
|
+
end
|
19
|
+
|
20
|
+
if Setting[:content_default_http_proxy] != name
|
21
|
+
Setting[:content_default_http_proxy] = name
|
22
|
+
end
|
23
|
+
else
|
24
|
+
Setting[:content_default_http_proxy] = ''
|
25
|
+
end
|
@@ -23,6 +23,7 @@
|
|
23
23
|
angular.module('Bastion').value('repositoryTypes', angular.fromJson('<%= Katello::RepositoryTypeManager.repository_types.values.to_json.html_safe %>'));
|
24
24
|
angular.module('Bastion').value('deleteHostOnUnregister', angular.fromJson('<%= Setting[:unregister_delete_host] %>'));
|
25
25
|
angular.module('Bastion').value('contentDisconnected', angular.fromJson('<%= Setting[:content_disconnected] %>'));
|
26
|
+
angular.module('Bastion').value('globalContentProxy', angular.fromJson('<%= Setting[:content_default_http_proxy].empty? ? nil.to_json : Setting[:content_default_http_proxy].to_json.html_safe %>'));
|
26
27
|
angular.module('Bastion').value('entriesPerPage', "<%= Setting[:entries_per_page] %>");
|
27
28
|
angular.module('Bastion').value('contentViewSolveDependencies', "<%= Setting[:content_view_solve_dependencies] %>");
|
28
29
|
angular.module('Bastion').constant('BastionConfig', angular.fromJson('<%= Bastion.config.to_json.html_safe %>'));
|
@@ -112,6 +112,21 @@ angular.module('Bastion.activation-keys').controller('ActivationKeyDetailsInfoCo
|
|
112
112
|
$scope.save($scope.activationKey);
|
113
113
|
};
|
114
114
|
|
115
|
+
$scope.clearRole = function () {
|
116
|
+
$scope.activationKey['purpose_role'] = '';
|
117
|
+
$scope.save($scope.activationKey);
|
118
|
+
};
|
119
|
+
|
120
|
+
$scope.clearUsage = function () {
|
121
|
+
$scope.activationKey['purpose_usage'] = '';
|
122
|
+
$scope.save($scope.activationKey);
|
123
|
+
};
|
124
|
+
|
125
|
+
$scope.clearAddOns = function () {
|
126
|
+
$scope.activationKey['purpose_addons'] = [];
|
127
|
+
$scope.save($scope.activationKey);
|
128
|
+
};
|
129
|
+
|
115
130
|
$scope.contentViews = function () {
|
116
131
|
var deferred = $q.defer();
|
117
132
|
|
@@ -18,6 +18,15 @@
|
|
18
18
|
angular.module('Bastion.activation-keys').controller('ActivationKeyDetailsController',
|
19
19
|
['$scope', '$state', '$q', 'translate', 'ActivationKey', 'Organization', 'CurrentOrganization', 'Notification', 'ApiErrorHandler',
|
20
20
|
function ($scope, $state, $q, translate, ActivationKey, Organization, CurrentOrganization, Notification, ApiErrorHandler) {
|
21
|
+
$scope.defaultRoles = ['Red Hat Enterprise Linux Server', 'Red Hat Enterprise Linux Workstation', 'Red Hat Enterprise Linux Compute Node'];
|
22
|
+
$scope.defaultUsages = ['Production', 'Development/Test', 'Disaster Recovery'];
|
23
|
+
|
24
|
+
$scope.purposeAddonsCount = 0;
|
25
|
+
|
26
|
+
$scope.organization = Organization.get({id: CurrentOrganization}, function(org) {
|
27
|
+
$scope.purposeAddonsCount += org.system_purposes.addons.length;
|
28
|
+
});
|
29
|
+
|
21
30
|
$scope.panel = {
|
22
31
|
error: false,
|
23
32
|
loading: true
|
@@ -62,13 +71,69 @@ angular.module('Bastion.activation-keys').controller('ActivationKeyDetailsContro
|
|
62
71
|
};
|
63
72
|
|
64
73
|
$scope.serviceLevels = function () {
|
65
|
-
|
74
|
+
return $scope.organization.$promise.then(function(org) {
|
75
|
+
return org.service_levels;
|
76
|
+
});
|
77
|
+
};
|
66
78
|
|
67
|
-
|
68
|
-
|
79
|
+
$scope.purposeUsages = function () {
|
80
|
+
return $scope.organization.$promise.then(function(org) {
|
81
|
+
var usages = org.system_purposes.usage;
|
82
|
+
var usage = $scope.activationKey.purpose_usage;
|
83
|
+
if (usage && !_.includes(usages, usage)) {
|
84
|
+
usages.push(usage);
|
85
|
+
}
|
86
|
+
return _.union(usages, $scope.defaultUsages);
|
69
87
|
});
|
88
|
+
};
|
70
89
|
|
71
|
-
|
90
|
+
$scope.purposeRoles = function () {
|
91
|
+
return $scope.organization.$promise.then(function(org) {
|
92
|
+
var roles = org.system_purposes.roles;
|
93
|
+
var role = $scope.activationKey.purpose_role;
|
94
|
+
if (role && !_.includes(roles, role)) {
|
95
|
+
roles.push(role);
|
96
|
+
}
|
97
|
+
return _.union(roles, $scope.defaultRoles);
|
98
|
+
});
|
99
|
+
};
|
100
|
+
|
101
|
+
|
102
|
+
$scope.savePurposeAddons = function (key) {
|
103
|
+
|
104
|
+
if ($scope.purposeAddonsList) {
|
105
|
+
key['purpose_addons'] = _.chain($scope.purposeAddonsList).filter(function(addOn) {
|
106
|
+
return addOn.selected;
|
107
|
+
}).map(function(addOn) {
|
108
|
+
return addOn.name;
|
109
|
+
}).value();
|
110
|
+
}
|
111
|
+
|
112
|
+
return $scope.save(key);
|
113
|
+
};
|
114
|
+
|
115
|
+
|
116
|
+
$scope.purposeAddons = function () {
|
117
|
+
var purposeAddons;
|
118
|
+
var addOns;
|
119
|
+
|
120
|
+
return $scope.organization.$promise.then(function(org) {
|
121
|
+
$scope.purposeAddonsList = [];
|
122
|
+
addOns = org.system_purposes.addons;
|
123
|
+
|
124
|
+
purposeAddons = $scope.activationKey.purpose_addons;
|
125
|
+
angular.forEach(purposeAddons, function(addOn) {
|
126
|
+
if (addOn && !_.includes(addOns, addOn)) {
|
127
|
+
addOns.push(addOn);
|
128
|
+
}
|
129
|
+
});
|
130
|
+
|
131
|
+
angular.forEach(addOns, function (addOn) {
|
132
|
+
$scope.purposeAddonsList.push({"name": addOn, "selected": purposeAddons.indexOf(addOn) > -1});
|
133
|
+
});
|
134
|
+
|
135
|
+
return $scope.purposeAddonsList;
|
136
|
+
});
|
72
137
|
};
|
73
138
|
}]
|
74
139
|
);
|
@@ -54,6 +54,10 @@
|
|
54
54
|
</div>
|
55
55
|
</dd>
|
56
56
|
|
57
|
+
|
58
|
+
<div class="divider"></div>
|
59
|
+
<h4 translate>System Purpose</h4>
|
60
|
+
|
57
61
|
<dt translate>Service Level</dt>
|
58
62
|
<dd bst-edit-select="activationKey.service_level"
|
59
63
|
readonly="denied('edit_activation_keys', activationKey)"
|
@@ -64,6 +68,41 @@
|
|
64
68
|
on-delete="clearServiceLevel()"
|
65
69
|
on-save="save(activationKey)">
|
66
70
|
</dd>
|
71
|
+
|
72
|
+
<dt translate>Usage Type</dt>
|
73
|
+
<dd bst-edit-select="activationKey.purpose_usage"
|
74
|
+
readonly="denied('edit_activation_keys', activationKey)"
|
75
|
+
selector="activationKey.purpose_usage"
|
76
|
+
options="purposeUsages()"
|
77
|
+
options-format="option for option in options"
|
78
|
+
deletable="true"
|
79
|
+
on-delete="clearUsage()"
|
80
|
+
on-save="save(activationKey)">
|
81
|
+
</dd>
|
82
|
+
|
83
|
+
|
84
|
+
<dt translate>Role</dt>
|
85
|
+
<dd bst-edit-select="activationKey.purpose_role"
|
86
|
+
readonly="denied('edit_activation_keys', activationKey)"
|
87
|
+
selector="activationKey.purpose_role"
|
88
|
+
options="purposeRoles()"
|
89
|
+
options-format="option for option in options"
|
90
|
+
deletable="true"
|
91
|
+
on-delete="clearRole()"
|
92
|
+
on-save="save(activationKey)">
|
93
|
+
</dd>
|
94
|
+
|
95
|
+
<dt translate>Add ons</dt>
|
96
|
+
<dd bst-edit-multiselect="activationKey.purpose_addons"
|
97
|
+
readonly="denied('edit_activation_keys', activationKey) || purposeAddonsCount === 0"
|
98
|
+
options="purposeAddons()"
|
99
|
+
formatter="arrayToString"
|
100
|
+
deletable="true"
|
101
|
+
on-delete="clearAddOns()"
|
102
|
+
selector="activationKey.purpose_addons"
|
103
|
+
on-save="savePurposeAddons(activationKey)">
|
104
|
+
</dd>
|
105
|
+
|
67
106
|
</dl>
|
68
107
|
</div>
|
69
108
|
|