diff --git a/app/assets/javascripts/registry/components/table_registry.vue b/app/assets/javascripts/registry/components/table_registry.vue index d6d2896a8f8..00acc0eb04a 100644 --- a/app/assets/javascripts/registry/components/table_registry.vue +++ b/app/assets/javascripts/registry/components/table_registry.vue @@ -51,7 +51,7 @@ export default { shouldRenderPagination() { return this.repo.pagination.total > this.repo.pagination.perPage; }, - modalTitle() { + modalAction() { return n__( 'ContainerRegistry|Remove tag', 'ContainerRegistry|Remove tags', @@ -269,8 +269,8 @@ export default { /> - - + +

diff --git a/app/views/admin/application_settings/_repository_storage.html.haml b/app/views/admin/application_settings/_repository_storage.html.haml index e5bcb180445..b97e9a194f3 100644 --- a/app/views/admin/application_settings/_repository_storage.html.haml +++ b/app/views/admin/application_settings/_repository_storage.html.haml @@ -3,21 +3,24 @@ %fieldset .sub-section + %h4= _("Hashed repository storage paths") .form-group .form-check = f.check_box :hashed_storage_enabled, class: 'form-check-input qa-hashed-storage-checkbox' - = f.label :hashed_storage_enabled, class: 'form-check-label' do - Use hashed storage paths for newly created and renamed projects + = f.label :hashed_storage_enabled, _("Use hashed storage"), class: 'label-bold form-check-label' .form-text.text-muted - Enable immutable, hash-based paths and repository names to store repositories on disk. This prevents - repositories from having to be moved or renamed when the Project URL changes and may improve disk I/O performance. + = _("Use hashed storage paths for newly created and renamed projects. Enable immutable, hash-based paths and repository names to store repositories on disk. This prevents repositories from having to be moved or renamed when the Project URL changes and may improve disk I/O performance.") + .sub-section + %h4= _("Storage nodes for new projects") .form-group - = f.label :repository_storages, 'Storage paths for new projects', class: 'label-bold' - = f.select :repository_storages, repository_storages_options_for_select(@application_setting.repository_storages), - {include_hidden: false}, multiple: true, class: 'form-control' - .form-text.text-muted - Manage repository storage paths. Learn more in the - = succeed "." do - = link_to "repository storages documentation", help_page_path("administration/repository_storage_paths") + .form-text + %p.text-secondary + = _('Select the configured storaged available for new projects to be placed on.') + = link_to icon('question-circle'), help_page_path('administration/repository_storage_paths') + .form-check + = f.collection_check_boxes :repository_storages, Gitlab.config.repositories.storages, :first, :first, include_hidden: false do |b| + = b.check_box class: 'form-check-input' + = b.label class: 'label-bold form-check-label' + %br - = f.submit 'Save changes', class: "btn btn-success qa-save-changes-button" + = f.submit _('Save changes'), class: "btn btn-success qa-save-changes-button" diff --git a/changelogs/unreleased/33405-container-registry-improve-delete-modal-button.yml b/changelogs/unreleased/33405-container-registry-improve-delete-modal-button.yml new file mode 100644 index 00000000000..23ebd3b038e --- /dev/null +++ b/changelogs/unreleased/33405-container-registry-improve-delete-modal-button.yml @@ -0,0 +1,5 @@ +--- +title: Container registry tag(s) delete button pluralization +merge_request: 18260 +author: +type: changed diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 83fd5e28805..7fb5a1559ce 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -4258,9 +4258,6 @@ msgid_plural "ContainerRegistry|Remove tags" msgstr[0] "" msgstr[1] "" -msgid "ContainerRegistry|Remove tag(s)" -msgstr "" - msgid "ContainerRegistry|Size" msgstr "" @@ -8240,6 +8237,9 @@ msgstr "" msgid "HTTP Basic: Access denied\\nYou must use a personal access token with 'api' scope for Git over HTTP.\\nYou can generate one at %{profile_personal_access_tokens_url}" msgstr "" +msgid "Hashed repository storage paths" +msgstr "" + msgid "Have your users email" msgstr "" @@ -14363,6 +14363,9 @@ msgstr "" msgid "Select the branch you want to set as the default for this project. All merge requests and commits will automatically be made against this branch unless you specify a different one." msgstr "" +msgid "Select the configured storaged available for new projects to be placed on." +msgstr "" + msgid "Select the custom project template source group." msgstr "" @@ -15376,6 +15379,9 @@ msgstr "" msgid "Storage" msgstr "" +msgid "Storage nodes for new projects" +msgstr "" + msgid "Storage:" msgstr "" @@ -17515,6 +17521,12 @@ msgstr "" msgid "Use group milestones to manage issues from multiple projects in the same milestone." msgstr "" +msgid "Use hashed storage" +msgstr "" + +msgid "Use hashed storage paths for newly created and renamed projects. Enable immutable, hash-based paths and repository names to store repositories on disk. This prevents repositories from having to be moved or renamed when the Project URL changes and may improve disk I/O performance." +msgstr "" + msgid "Use one line per URI" msgstr "" diff --git a/spec/frontend/registry/components/table_registry_spec.js b/spec/frontend/registry/components/table_registry_spec.js index c827cc6ea48..021f13feeba 100644 --- a/spec/frontend/registry/components/table_registry_spec.js +++ b/spec/frontend/registry/components/table_registry_spec.js @@ -196,7 +196,7 @@ describe('table registry', () => { it('should show the singular title and image name when deleting a single image', () => { wrapper.setData({ itemsToBeDeleted: [1] }); wrapper.vm.setModalDescription(0); - expect(wrapper.vm.modalTitle).toBe('Remove tag'); + expect(wrapper.vm.modalAction).toBe('Remove tag'); expect(wrapper.vm.modalDescription).toContain(firstImage.tag); }); @@ -204,7 +204,7 @@ describe('table registry', () => { wrapper.setData({ itemsToBeDeleted: [1, 2] }); wrapper.vm.setModalDescription(); - expect(wrapper.vm.modalTitle).toBe('Remove tags'); + expect(wrapper.vm.modalAction).toBe('Remove tags'); expect(wrapper.vm.modalDescription).toContain('2 tags'); }); }); diff --git a/spec/models/clusters/applications/jupyter_spec.rb b/spec/models/clusters/applications/jupyter_spec.rb index e1eee014567..0ec9333d6a7 100644 --- a/spec/models/clusters/applications/jupyter_spec.rb +++ b/spec/models/clusters/applications/jupyter_spec.rb @@ -91,7 +91,6 @@ describe Clusters::Applications::Jupyter do it 'includes valid values' do expect(values).to include('ingress') expect(values).to include('hub') - expect(values).to include('rbac') expect(values).to include('proxy') expect(values).to include('auth') expect(values).to include('singleuser') @@ -111,7 +110,6 @@ describe Clusters::Applications::Jupyter do it 'includes valid values' do expect(values).to include('ingress') expect(values).to include('hub') - expect(values).to include('rbac') expect(values).to include('proxy') expect(values).to include('auth') expect(values).to include('singleuser') diff --git a/spec/views/admin/application_settings/_repository_storage.html.haml_spec.rb b/spec/views/admin/application_settings/_repository_storage.html.haml_spec.rb new file mode 100644 index 00000000000..3029bfb6df5 --- /dev/null +++ b/spec/views/admin/application_settings/_repository_storage.html.haml_spec.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe 'admin/application_settings/_repository_storage.html.haml' do + let(:app_settings) { build(:application_setting) } + let(:storages) do + { + "mepmep" => { "path" => "/tmp" }, + "foobar" => { "path" => "/tmp" } + } + end + + before do + assign(:application_setting, app_settings) + stub_storage_settings(storages) + end + + context 'when multiple storages are available' do + it 'lists them all' do + render + + storages.keys.each do |storage_name| + expect(rendered).to have_content(storage_name) + end + end + end +end diff --git a/vendor/ingress/values.yaml b/vendor/ingress/values.yaml index d0c1673cefc..a6b499953bf 100644 --- a/vendor/ingress/values.yaml +++ b/vendor/ingress/values.yaml @@ -7,8 +7,3 @@ controller: podAnnotations: prometheus.io/scrape: "true" prometheus.io/port: "10254" - -rbac: - create: false - createRole: false - createClusterRole: false diff --git a/vendor/jupyter/values.yaml b/vendor/jupyter/values.yaml index c889814981e..879b7ea4271 100644 --- a/vendor/jupyter/values.yaml +++ b/vendor/jupyter/values.yaml @@ -1,6 +1,3 @@ -rbac: - enabled: false - hub: extraEnv: JUPYTER_ENABLE_LAB: 1 diff --git a/vendor/prometheus/values.yaml b/vendor/prometheus/values.yaml index 60241c65202..be79a0c5380 100644 --- a/vendor/prometheus/values.yaml +++ b/vendor/prometheus/values.yaml @@ -12,9 +12,6 @@ nodeExporter: pushgateway: enabled: false -rbac: - create: false - server: fullnameOverride: "prometheus-prometheus-server" image: diff --git a/vendor/runner/values.yaml b/vendor/runner/values.yaml index e5f95152ac7..a34fa0caae4 100644 --- a/vendor/runner/values.yaml +++ b/vendor/runner/values.yaml @@ -11,7 +11,6 @@ checkInterval: 3 ## For RBAC support rbac: - create: false clusterWideAccess: false ## Configuration for the Pods that that the runner launches for each new job