summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/pages/admin
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/pages/admin')
-rw-r--r--app/assets/javascripts/pages/admin/application_settings/general/components/signup_form.vue64
-rw-r--r--app/assets/javascripts/pages/admin/application_settings/metrics_and_profiling/usage_statistics.js26
-rw-r--r--app/assets/javascripts/pages/admin/groups/edit/index.js2
-rw-r--r--app/assets/javascripts/pages/admin/groups/show/index.js22
-rw-r--r--app/assets/javascripts/pages/admin/integrations/overrides/index.js3
-rw-r--r--app/assets/javascripts/pages/admin/jobs/index/components/stop_jobs_modal.vue2
-rw-r--r--app/assets/javascripts/pages/admin/projects/index.js18
-rw-r--r--app/assets/javascripts/pages/admin/runners/index/index.js18
-rw-r--r--app/assets/javascripts/pages/admin/serverless/domains/index.js28
9 files changed, 72 insertions, 111 deletions
diff --git a/app/assets/javascripts/pages/admin/application_settings/general/components/signup_form.vue b/app/assets/javascripts/pages/admin/application_settings/general/components/signup_form.vue
index 9850113d4be..c2510a16d2f 100644
--- a/app/assets/javascripts/pages/admin/application_settings/general/components/signup_form.vue
+++ b/app/assets/javascripts/pages/admin/application_settings/general/components/signup_form.vue
@@ -11,7 +11,7 @@ import {
} from '@gitlab/ui';
import { toSafeInteger } from 'lodash';
import csrf from '~/lib/utils/csrf';
-import { __, s__, sprintf } from '~/locale';
+import { __, n__, s__, sprintf } from '~/locale';
import SignupCheckbox from './signup_checkbox.vue';
const DENYLIST_TYPE_RAW = 'raw';
@@ -51,6 +51,7 @@ export default {
'supportedSyntaxLinkUrl',
'emailRestrictions',
'afterSignUpText',
+ 'pendingUserCount',
],
data() {
return {
@@ -105,8 +106,9 @@ export default {
canUsersBeAccidentallyApproved() {
const hasUserCapBeenToggledOff =
this.requireAdminApprovalAfterUserSignup && !this.form.requireAdminApproval;
+ const currentlyPendingUsers = this.pendingUserCount > 0;
- return this.hasUserCapBeenIncreased || hasUserCapBeenToggledOff;
+ return (this.hasUserCapBeenIncreased || hasUserCapBeenToggledOff) && currentlyPendingUsers;
},
signupEnabledHelpText() {
const text = sprintf(
@@ -132,13 +134,39 @@ export default {
return text;
},
+ approveUsersModal() {
+ const { pendingUserCount } = this;
+
+ return {
+ id: 'signup-settings-modal',
+ text: n__(
+ 'ApplicationSettings|By making this change, you will automatically approve %d user with the pending approval status.',
+ 'ApplicationSettings|By making this change, you will automatically approve %d users with the pending approval status.',
+ pendingUserCount,
+ ),
+ actionPrimary: {
+ text: n__(
+ 'ApplicationSettings|Approve %d user',
+ 'ApplicationSettings|Approve %d users',
+ pendingUserCount,
+ ),
+ attributes: {
+ variant: 'confirm',
+ },
+ },
+ actionCancel: {
+ text: __('Cancel'),
+ },
+ title: s__('ApplicationSettings|Approve users in the pending approval status?'),
+ };
+ },
},
watch: {
showModal(value) {
if (value === true) {
- this.$refs[this.$options.modal.id].show();
+ this.$refs[this.approveUsersModal.id].show();
} else {
- this.$refs[this.$options.modal.id].hide();
+ this.$refs[this.approveUsersModal.id].hide();
}
},
},
@@ -196,22 +224,6 @@ export default {
afterSignUpTextGroupLabel: s__('ApplicationSettings|After sign up text'),
afterSignUpTextGroupDescription: s__('ApplicationSettings|Markdown enabled'),
},
- modal: {
- id: 'signup-settings-modal',
- actionPrimary: {
- text: s__('ApplicationSettings|Approve users'),
- attributes: {
- variant: 'confirm',
- },
- },
- actionCancel: {
- text: __('Cancel'),
- },
- title: s__('ApplicationSettings|Approve all users in the pending approval status?'),
- text: s__(
- 'ApplicationSettings|By making this change, you will automatically approve all users in pending approval status.',
- ),
- },
};
</script>
@@ -403,15 +415,15 @@ export default {
</gl-button>
<gl-modal
- :ref="$options.modal.id"
- :modal-id="$options.modal.id"
- :action-cancel="$options.modal.actionCancel"
- :action-primary="$options.modal.actionPrimary"
- :title="$options.modal.title"
+ :ref="approveUsersModal.id"
+ :modal-id="approveUsersModal.id"
+ :action-cancel="approveUsersModal.actionCancel"
+ :action-primary="approveUsersModal.actionPrimary"
+ :title="approveUsersModal.title"
@primary="submitForm"
@hide="modalHideHandler"
>
- {{ $options.modal.text }}
+ {{ approveUsersModal.text }}
</gl-modal>
</form>
</template>
diff --git a/app/assets/javascripts/pages/admin/application_settings/metrics_and_profiling/usage_statistics.js b/app/assets/javascripts/pages/admin/application_settings/metrics_and_profiling/usage_statistics.js
index bf27b1a81ff..4c312a008cb 100644
--- a/app/assets/javascripts/pages/admin/application_settings/metrics_and_profiling/usage_statistics.js
+++ b/app/assets/javascripts/pages/admin/application_settings/metrics_and_profiling/usage_statistics.js
@@ -8,34 +8,34 @@ export const HELPER_TEXT_SERVICE_PING_ENABLED = __(
'You can enable Registration Features because Service Ping is enabled. To continue using Registration Features in the future, you will also need to register with GitLab via a new cloud licensing service.',
);
-function setHelperText(usagePingCheckbox) {
+function setHelperText(servicePingCheckbox) {
const helperTextId = document.getElementById('service_ping_features_helper_text');
- const usagePingFeaturesLabel = document.getElementById('service_ping_features_label');
+ const servicePingFeaturesLabel = document.getElementById('service_ping_features_label');
- const usagePingFeaturesCheckbox = document.getElementById(
+ const servicePingFeaturesCheckbox = document.getElementById(
'application_setting_usage_ping_features_enabled',
);
- helperTextId.textContent = usagePingCheckbox.checked
+ helperTextId.textContent = servicePingCheckbox.checked
? HELPER_TEXT_SERVICE_PING_ENABLED
: HELPER_TEXT_SERVICE_PING_DISABLED;
- usagePingFeaturesLabel.classList.toggle('gl-cursor-not-allowed', !usagePingCheckbox.checked);
+ servicePingFeaturesLabel.classList.toggle('gl-cursor-not-allowed', !servicePingCheckbox.checked);
- usagePingFeaturesCheckbox.disabled = !usagePingCheckbox.checked;
+ servicePingFeaturesCheckbox.disabled = !servicePingCheckbox.checked;
- if (!usagePingCheckbox.checked) {
- usagePingFeaturesCheckbox.disabled = true;
- usagePingFeaturesCheckbox.checked = false;
+ if (!servicePingCheckbox.checked) {
+ servicePingFeaturesCheckbox.disabled = true;
+ servicePingFeaturesCheckbox.checked = false;
}
}
export default function initSetHelperText() {
- const usagePingCheckbox = document.getElementById('application_setting_usage_ping_enabled');
+ const servicePingCheckbox = document.getElementById('application_setting_usage_ping_enabled');
- setHelperText(usagePingCheckbox);
- usagePingCheckbox.addEventListener('change', () => {
- setHelperText(usagePingCheckbox);
+ setHelperText(servicePingCheckbox);
+ servicePingCheckbox.addEventListener('change', () => {
+ setHelperText(servicePingCheckbox);
});
}
diff --git a/app/assets/javascripts/pages/admin/groups/edit/index.js b/app/assets/javascripts/pages/admin/groups/edit/index.js
index a4e5df559ff..01e03ed437d 100644
--- a/app/assets/javascripts/pages/admin/groups/edit/index.js
+++ b/app/assets/javascripts/pages/admin/groups/edit/index.js
@@ -1,3 +1,3 @@
import initFilePickers from '~/file_pickers';
-document.addEventListener('DOMContentLoaded', initFilePickers);
+initFilePickers();
diff --git a/app/assets/javascripts/pages/admin/groups/show/index.js b/app/assets/javascripts/pages/admin/groups/show/index.js
index 69d219d29f7..86b80a0ba5b 100644
--- a/app/assets/javascripts/pages/admin/groups/show/index.js
+++ b/app/assets/javascripts/pages/admin/groups/show/index.js
@@ -1,23 +1,3 @@
-import Vue from 'vue';
import UsersSelect from '~/users_select';
-import RemoveMemberModal from '~/vue_shared/components/remove_member_modal.vue';
-function mountRemoveMemberModal() {
- const el = document.querySelector('.js-remove-member-modal');
- if (!el) {
- return false;
- }
-
- return new Vue({
- el,
- render(createComponent) {
- return createComponent(RemoveMemberModal);
- },
- });
-}
-
-document.addEventListener('DOMContentLoaded', () => {
- mountRemoveMemberModal();
-
- new UsersSelect(); // eslint-disable-line no-new
-});
+new UsersSelect(); // eslint-disable-line no-new
diff --git a/app/assets/javascripts/pages/admin/integrations/overrides/index.js b/app/assets/javascripts/pages/admin/integrations/overrides/index.js
new file mode 100644
index 00000000000..b1504709144
--- /dev/null
+++ b/app/assets/javascripts/pages/admin/integrations/overrides/index.js
@@ -0,0 +1,3 @@
+import initIntegrationOverrides from '~/integrations/overrides';
+
+initIntegrationOverrides();
diff --git a/app/assets/javascripts/pages/admin/jobs/index/components/stop_jobs_modal.vue b/app/assets/javascripts/pages/admin/jobs/index/components/stop_jobs_modal.vue
index ffccc1419a6..63b98f4143b 100644
--- a/app/assets/javascripts/pages/admin/jobs/index/components/stop_jobs_modal.vue
+++ b/app/assets/javascripts/pages/admin/jobs/index/components/stop_jobs_modal.vue
@@ -18,7 +18,7 @@ export default {
computed: {
text() {
return s__(
- 'AdminArea|You’re about to stop all jobs.This will halt all current jobs that are running.',
+ 'AdminArea|You’re about to stop all jobs. This will halt all current jobs that are running.',
);
},
},
diff --git a/app/assets/javascripts/pages/admin/projects/index.js b/app/assets/javascripts/pages/admin/projects/index.js
index 042ff7808f1..b07ca815f13 100644
--- a/app/assets/javascripts/pages/admin/projects/index.js
+++ b/app/assets/javascripts/pages/admin/projects/index.js
@@ -1,23 +1,5 @@
-import Vue from 'vue';
import NamespaceSelect from '~/namespace_select';
import ProjectsList from '~/projects_list';
-import RemoveMemberModal from '~/vue_shared/components/remove_member_modal.vue';
-
-function mountRemoveMemberModal() {
- const el = document.querySelector('.js-remove-member-modal');
- if (!el) {
- return false;
- }
-
- return new Vue({
- el,
- render(createComponent) {
- return createComponent(RemoveMemberModal);
- },
- });
-}
-
-mountRemoveMemberModal();
new ProjectsList(); // eslint-disable-line no-new
diff --git a/app/assets/javascripts/pages/admin/runners/index/index.js b/app/assets/javascripts/pages/admin/runners/index/index.js
index d5563470394..f83111b6385 100644
--- a/app/assets/javascripts/pages/admin/runners/index/index.js
+++ b/app/assets/javascripts/pages/admin/runners/index/index.js
@@ -1,17 +1,3 @@
-import AdminRunnersFilteredSearchTokenKeys from '~/filtered_search/admin_runners_filtered_search_token_keys';
-import { FILTERED_SEARCH } from '~/pages/constants';
-import initFilteredSearch from '~/pages/search/init_filtered_search';
-import { initInstallRunner } from '~/pages/shared/mount_runner_instructions';
-import { initRunnerList } from '~/runner/runner_list';
+import { initAdminRunners } from '~/runner/admin_runners';
-initFilteredSearch({
- page: FILTERED_SEARCH.ADMIN_RUNNERS,
- filteredSearchTokenKeys: AdminRunnersFilteredSearchTokenKeys,
- useDefaultState: true,
-});
-
-initInstallRunner();
-
-if (gon.features?.runnerListViewVueUi) {
- initRunnerList();
-}
+initAdminRunners();
diff --git a/app/assets/javascripts/pages/admin/serverless/domains/index.js b/app/assets/javascripts/pages/admin/serverless/domains/index.js
index 5be466886a5..4fab7a1d9cb 100644
--- a/app/assets/javascripts/pages/admin/serverless/domains/index.js
+++ b/app/assets/javascripts/pages/admin/serverless/domains/index.js
@@ -1,19 +1,17 @@
import initSettingsPanels from '~/settings_panels';
-document.addEventListener('DOMContentLoaded', () => {
- // Initialize expandable settings panels
- initSettingsPanels();
+// Initialize expandable settings panels
+initSettingsPanels();
- const domainCard = document.querySelector('.js-domain-cert-show');
- const domainForm = document.querySelector('.js-domain-cert-inputs');
- const domainReplaceButton = document.querySelector('.js-domain-cert-replace-btn');
- const domainSubmitButton = document.querySelector('.js-serverless-domain-submit');
+const domainCard = document.querySelector('.js-domain-cert-show');
+const domainForm = document.querySelector('.js-domain-cert-inputs');
+const domainReplaceButton = document.querySelector('.js-domain-cert-replace-btn');
+const domainSubmitButton = document.querySelector('.js-serverless-domain-submit');
- if (domainReplaceButton && domainCard && domainForm) {
- domainReplaceButton.addEventListener('click', () => {
- domainCard.classList.add('hidden');
- domainForm.classList.remove('hidden');
- domainSubmitButton.removeAttribute('disabled');
- });
- }
-});
+if (domainReplaceButton && domainCard && domainForm) {
+ domainReplaceButton.addEventListener('click', () => {
+ domainCard.classList.add('hidden');
+ domainForm.classList.remove('hidden');
+ domainSubmitButton.removeAttribute('disabled');
+ });
+}