Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
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.vue6
-rw-r--r--app/assets/javascripts/pages/admin/application_settings/payload_downloader.js52
-rw-r--r--app/assets/javascripts/pages/admin/application_settings/payload_previewer.js21
-rw-r--r--app/assets/javascripts/pages/admin/application_settings/service_usage_data/index.js3
-rw-r--r--app/assets/javascripts/pages/admin/runners/show/index.js3
5 files changed, 74 insertions, 11 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 c2510a16d2f..3ef75b3ef0e 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
@@ -140,8 +140,8 @@ export default {
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.',
+ 'ApplicationSettings|By making this change, you will automatically approve %d user who is pending approval.',
+ 'ApplicationSettings|By making this change, you will automatically approve %d users who are pending approval.',
pendingUserCount,
),
actionPrimary: {
@@ -157,7 +157,7 @@ export default {
actionCancel: {
text: __('Cancel'),
},
- title: s__('ApplicationSettings|Approve users in the pending approval status?'),
+ title: s__('ApplicationSettings|Approve users who are pending approval?'),
};
},
},
diff --git a/app/assets/javascripts/pages/admin/application_settings/payload_downloader.js b/app/assets/javascripts/pages/admin/application_settings/payload_downloader.js
new file mode 100644
index 00000000000..67eee2c3209
--- /dev/null
+++ b/app/assets/javascripts/pages/admin/application_settings/payload_downloader.js
@@ -0,0 +1,52 @@
+import createFlash from '~/flash';
+import axios from '../../../lib/utils/axios_utils';
+import { __ } from '../../../locale';
+
+export default class PayloadDownloader {
+ constructor(trigger) {
+ this.trigger = trigger;
+ }
+
+ init() {
+ this.spinner = this.trigger.querySelector('.js-spinner');
+ this.text = this.trigger.querySelector('.js-text');
+
+ this.trigger.addEventListener('click', (event) => {
+ event.preventDefault();
+
+ return this.requestPayload();
+ });
+ }
+
+ requestPayload() {
+ this.spinner.classList.add('d-inline-flex');
+
+ return axios
+ .get(this.trigger.dataset.endpoint, {
+ responseType: 'json',
+ })
+ .then(({ data }) => {
+ PayloadDownloader.downloadFile(data);
+ })
+ .catch(() => {
+ createFlash({
+ message: __('Error fetching payload data.'),
+ });
+ })
+ .finally(() => {
+ this.spinner.classList.remove('d-inline-flex');
+ });
+ }
+
+ static downloadFile(data) {
+ const blob = new Blob([JSON.stringify(data)], { type: 'application/json' });
+
+ const link = document.createElement('a');
+ link.href = window.URL.createObjectURL(blob);
+ link.download = `${data.recorded_at.slice(0, 10)} payload.json`;
+ document.body.appendChild(link);
+ link.click();
+ document.body.removeChild(link);
+ window.URL.revokeObjectURL(link.href);
+ }
+}
diff --git a/app/assets/javascripts/pages/admin/application_settings/payload_previewer.js b/app/assets/javascripts/pages/admin/application_settings/payload_previewer.js
index 08f6633f424..c017cf0afa2 100644
--- a/app/assets/javascripts/pages/admin/application_settings/payload_previewer.js
+++ b/app/assets/javascripts/pages/admin/application_settings/payload_previewer.js
@@ -5,7 +5,6 @@ import { __ } from '../../../locale';
export default class PayloadPreviewer {
constructor(trigger) {
this.trigger = trigger;
- this.container = document.querySelector(trigger.dataset.payloadSelector);
this.isVisible = false;
this.isInserted = false;
}
@@ -23,21 +22,27 @@ export default class PayloadPreviewer {
});
}
+ getContainer() {
+ return document.querySelector(this.trigger.dataset.payloadSelector);
+ }
+
requestPayload() {
if (this.isInserted) return this.showPayload();
- this.spinner.classList.add('d-inline-flex');
+ this.spinner.classList.add('gl-display-inline-flex');
+
+ const container = this.getContainer();
return axios
- .get(this.container.dataset.endpoint, {
+ .get(container.dataset.endpoint, {
responseType: 'text',
})
.then(({ data }) => {
- this.spinner.classList.remove('d-inline-flex');
+ this.spinner.classList.remove('gl-display-inline-flex');
this.insertPayload(data);
})
.catch(() => {
- this.spinner.classList.remove('d-inline-flex');
+ this.spinner.classList.remove('gl-display-inline-flex');
createFlash({
message: __('Error fetching payload data.'),
});
@@ -46,19 +51,19 @@ export default class PayloadPreviewer {
hidePayload() {
this.isVisible = false;
- this.container.classList.add('d-none');
+ this.getContainer().classList.add('gl-display-none');
this.text.textContent = __('Preview payload');
}
showPayload() {
this.isVisible = true;
- this.container.classList.remove('d-none');
+ this.getContainer().classList.remove('gl-display-none');
this.text.textContent = __('Hide payload');
}
insertPayload(data) {
this.isInserted = true;
- this.container.innerHTML = data;
+ this.getContainer().innerHTML = data;
this.showPayload();
}
}
diff --git a/app/assets/javascripts/pages/admin/application_settings/service_usage_data/index.js b/app/assets/javascripts/pages/admin/application_settings/service_usage_data/index.js
new file mode 100644
index 00000000000..8a12e753847
--- /dev/null
+++ b/app/assets/javascripts/pages/admin/application_settings/service_usage_data/index.js
@@ -0,0 +1,3 @@
+import initServiceUsageData from '~/admin/application_settings/setup_service_usage_data';
+
+initServiceUsageData();
diff --git a/app/assets/javascripts/pages/admin/runners/show/index.js b/app/assets/javascripts/pages/admin/runners/show/index.js
new file mode 100644
index 00000000000..f76f3a2430d
--- /dev/null
+++ b/app/assets/javascripts/pages/admin/runners/show/index.js
@@ -0,0 +1,3 @@
+import { initAdminRunnerShow } from '~/runner/admin_runner_show';
+
+initAdminRunnerShow();