diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-10-05 18:12:53 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-10-05 18:12:53 +0300 |
commit | a84626f13d61d190b2db5e44caf71b22fc541276 (patch) | |
tree | 5cf591ce134ac0ad5b8c101e3518b2e49101b6ad /app/assets | |
parent | c9b0dfef1ba43a9e04264023b08c589bcb9eb397 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets')
7 files changed, 84 insertions, 114 deletions
diff --git a/app/assets/javascripts/error_tracking/components/error_details.vue b/app/assets/javascripts/error_tracking/components/error_details.vue index 0a15cb56447..4adbf5362b7 100644 --- a/app/assets/javascripts/error_tracking/components/error_details.vue +++ b/app/assets/javascripts/error_tracking/components/error_details.vue @@ -128,6 +128,12 @@ export default { lastReleaseLink() { return `${this.error.externalBaseUrl}/releases/${this.error.lastReleaseVersion}`; }, + firstCommitLink() { + return `${this.error.externalBaseUrl}/-/commit/${this.error.firstReleaseVersion}`; + }, + lastCommitLink() { + return `${this.error.externalBaseUrl}/-/commit/${this.error.lastReleaseVersion}`; + }, showStacktrace() { return Boolean(this.stacktrace?.length); }, @@ -394,7 +400,7 @@ export default { <span>{{ error.gitlabIssuePath }}</span> </gl-link> </li> - <li> + <li v-if="!error.integrated"> <strong class="bold">{{ __('Sentry event') }}:</strong> <gl-link v-track-event="trackClickErrorLinkToSentryOptions(error.externalUrl)" @@ -409,15 +415,21 @@ export default { <li v-if="error.firstReleaseVersion"> <strong class="bold">{{ __('First seen') }}:</strong> <time-ago-tooltip :time="error.firstSeen" /> - <gl-link :href="firstReleaseLink" target="_blank"> - <span>{{ __('Release') }}: {{ error.firstReleaseVersion }}</span> + <gl-link v-if="error.integrated" :href="firstCommitLink"> + {{ __('GitLab commit') }}: {{ error.firstReleaseVersion }} + </gl-link> + <gl-link v-else :href="firstReleaseLink" target="_blank"> + {{ __('Release') }}: {{ error.firstReleaseVersion }} </gl-link> </li> <li v-if="error.lastReleaseVersion"> <strong class="bold">{{ __('Last seen') }}:</strong> <time-ago-tooltip :time="error.lastSeen" /> - <gl-link :href="lastReleaseLink" target="_blank"> - <span>{{ __('Release') }}: {{ error.lastReleaseVersion }}</span> + <gl-link v-if="error.integrated" :href="lastCommitLink"> + {{ __('GitLab commit') }}: {{ error.lastReleaseVersion }} + </gl-link> + <gl-link v-else :href="lastReleaseLink" target="_blank"> + {{ __('Release') }}: {{ error.lastReleaseVersion }} </gl-link> </li> <li> diff --git a/app/assets/javascripts/error_tracking/queries/details.query.graphql b/app/assets/javascripts/error_tracking/queries/details.query.graphql index 593cbf2ae52..af386528f00 100644 --- a/app/assets/javascripts/error_tracking/queries/details.query.graphql +++ b/app/assets/javascripts/error_tracking/queries/details.query.graphql @@ -23,6 +23,7 @@ query errorDetails($fullPath: ID!, $errorId: ID!) { gitlabCommit gitlabCommitPath gitlabIssuePath + integrated } } } diff --git a/app/assets/javascripts/issuable/components/csv_export_modal.vue b/app/assets/javascripts/issuable/components/csv_export_modal.vue index 1c88f8dfdca..b0af3612e05 100644 --- a/app/assets/javascripts/issuable/components/csv_export_modal.vue +++ b/app/assets/javascripts/issuable/components/csv_export_modal.vue @@ -1,9 +1,14 @@ <script> import { GlButton, GlModal, GlSprintf, GlIcon } from '@gitlab/ui'; +import { __, n__ } from '~/locale'; import { ISSUABLE_TYPE } from '../constants'; export default { - name: 'CsvExportModal', + i18n: { + exportText: __( + 'The CSV export will be created in the background. Once finished, it will be sent to %{email} in an attachment.', + ), + }, components: { GlButton, GlModal, @@ -32,53 +37,39 @@ export default { required: true, }, }, - data() { - return { - // eslint-disable-next-line @gitlab/require-i18n-strings - issuableName: this.issuableType === ISSUABLE_TYPE.issues ? 'issues' : 'merge requests', - }; + computed: { + isIssue() { + return this.issuableType === ISSUABLE_TYPE.issues; + }, + exportText() { + return this.isIssue ? __('Export issues') : __('Export merge requests'); + }, + issuableCountText() { + return this.isIssue + ? n__('1 issue selected', '%d issues selected', this.issuableCount) + : n__('1 merge request selected', '%d merge requests selected', this.issuableCount); + }, }, - issueableType: ISSUABLE_TYPE, }; </script> <template> - <gl-modal :modal-id="modalId" body-class="gl-p-0!" data-qa-selector="export_issuable_modal"> - <template #modal-title> - <gl-sprintf :message="__('Export %{name}')"> - <template #name>{{ issuableName }}</template> - </gl-sprintf> - </template> + <gl-modal + :modal-id="modalId" + body-class="gl-p-0!" + :title="exportText" + data-qa-selector="export_issuable_modal" + > <div - v-if="issuableCount > -1" class="gl-justify-content-start gl-align-items-center gl-p-4 gl-border-b-solid gl-border-1 gl-border-gray-50" > <gl-icon name="check" class="gl-color-green-400" /> - <strong class="gl-m-3"> - <gl-sprintf - v-if="issuableType === $options.issueableType.issues" - :message="n__('1 issue selected', '%d issues selected', issuableCount)" - > - <template #issuableCount>{{ issuableCount }}</template> - </gl-sprintf> - <gl-sprintf - v-else - :message="n__('1 merge request selected', '%d merge requests selected', issuableCount)" - > - <template #issuableCount>{{ issuableCount }}</template> - </gl-sprintf> - </strong> + <strong class="gl-m-3">{{ issuableCountText }}</strong> </div> <div class="modal-text gl-px-4 gl-py-5"> - <gl-sprintf - :message=" - __( - `The CSV export will be created in the background. Once finished, it will be sent to %{strongStart}${email}%{strongEnd} in an attachment.`, - ) - " - > - <template #strong="{ content }"> - <strong>{{ content }}</strong> + <gl-sprintf :message="$options.i18n.exportText"> + <template #email> + <strong>{{ email }}</strong> </template> </gl-sprintf> </div> @@ -92,9 +83,7 @@ export default { data-track-action="click_button" :data-track-label="`export_${issuableType}_csv`" > - <gl-sprintf :message="__('Export %{name}')"> - <template #name>{{ issuableName }}</template> - </gl-sprintf> + {{ exportText }} </gl-button> </template> </gl-modal> diff --git a/app/assets/javascripts/issuable/components/csv_import_export_buttons.vue b/app/assets/javascripts/issuable/components/csv_import_export_buttons.vue index 4fdd094072c..269f720bac9 100644 --- a/app/assets/javascripts/issuable/components/csv_import_export_buttons.vue +++ b/app/assets/javascripts/issuable/components/csv_import_export_buttons.vue @@ -15,6 +15,8 @@ import CsvImportModal from './csv_import_modal.vue'; export default { i18n: { exportAsCsvButtonText: __('Export as CSV'), + importCsvText: __('Import CSV'), + importFromJiraText: __('Import from Jira'), importIssuesText: __('Import issues'), }, name: 'CsvImportExportButtons', @@ -101,13 +103,16 @@ export default { :text-sr-only="!showLabel" :icon="importButtonIcon" > - <gl-dropdown-item v-gl-modal="importModalId">{{ __('Import CSV') }}</gl-dropdown-item> + <gl-dropdown-item v-gl-modal="importModalId"> + {{ $options.i18n.importCsvText }} + </gl-dropdown-item> <gl-dropdown-item v-if="canEdit" :href="projectImportJiraPath" data-qa-selector="import_from_jira_link" - >{{ __('Import from Jira') }}</gl-dropdown-item > + {{ $options.i18n.importFromJiraText }} + </gl-dropdown-item> </gl-dropdown> </gl-button-group> <csv-export-modal diff --git a/app/assets/javascripts/issuable/components/csv_import_modal.vue b/app/assets/javascripts/issuable/components/csv_import_modal.vue index c85efd60b8b..b72abe14ee1 100644 --- a/app/assets/javascripts/issuable/components/csv_import_modal.vue +++ b/app/assets/javascripts/issuable/components/csv_import_modal.vue @@ -1,23 +1,28 @@ <script> -import { GlModal, GlSprintf, GlFormGroup, GlButton } from '@gitlab/ui'; +import { GlModal, GlFormGroup } from '@gitlab/ui'; import csrf from '~/lib/utils/csrf'; -import { ISSUABLE_TYPE } from '../constants'; +import { __, sprintf } from '~/locale'; export default { - name: 'CsvImportModal', + i18n: { + maximumFileSizeText: __('The maximum file size allowed is %{size}.'), + importIssuesText: __('Import issues'), + uploadCsvFileText: __('Upload CSV file'), + mainText: __( + "Your issues will be imported in the background. Once finished, you'll get a confirmation email.", + ), + helpText: __( + 'It must have a header row and at least two columns: the first column is the issue title and the second column is the issue description. The separator is automatically detected.', + ), + }, + actionPrimary: { + text: __('Import issues'), + }, components: { GlModal, - GlSprintf, GlFormGroup, - GlButton, }, inject: { - issuableType: { - default: '', - }, - exportCsvPath: { - default: '', - }, importCsvIssuesPath: { default: '', }, @@ -31,11 +36,10 @@ export default { required: true, }, }, - data() { - return { - // eslint-disable-next-line @gitlab/require-i18n-strings - issuableName: this.issuableType === ISSUABLE_TYPE.issues ? 'issues' : 'merge requests', - }; + computed: { + maxFileSizeText() { + return sprintf(this.$options.i18n.maximumFileSizeText, { size: this.maxAttachmentSize }); + }, }, methods: { submitForm() { @@ -47,34 +51,22 @@ export default { </script> <template> - <gl-modal :modal-id="modalId" :title="__('Import issues')"> + <gl-modal + :modal-id="modalId" + :title="$options.i18n.importIssuesText" + :action-primary="$options.actionPrimary" + @primary="submitForm" + > <form ref="form" :action="importCsvIssuesPath" enctype="multipart/form-data" method="post"> <input :value="$options.csrf.token" type="hidden" name="authenticity_token" /> - <p> - {{ - __( - "Your issues will be imported in the background. Once finished, you'll get a confirmation email.", - ) - }} - </p> - <gl-form-group :label="__('Upload CSV file')" label-for="file"> + <p>{{ $options.i18n.mainText }}</p> + <gl-form-group :label="$options.i18n.uploadCsvFileText" label-for="file"> <input id="file" type="file" name="file" accept=".csv,text/csv" /> </gl-form-group> <p class="text-secondary"> - {{ - __( - 'It must have a header row and at least two columns: the first column is the issue title and the second column is the issue description. The separator is automatically detected.', - ) - }} - <gl-sprintf :message="__('The maximum file size allowed is %{size}.')" - ><template #size>{{ maxAttachmentSize }}</template></gl-sprintf - > + {{ $options.i18n.helpText }} + {{ maxFileSizeText }} </p> </form> - <template #modal-footer> - <gl-button category="primary" variant="confirm" @click="submitForm">{{ - __('Import issues') - }}</gl-button> - </template> </gl-modal> </template> diff --git a/app/assets/javascripts/pages/admin/serverless/domains/index.js b/app/assets/javascripts/pages/admin/serverless/domains/index.js deleted file mode 100644 index 4fab7a1d9cb..00000000000 --- a/app/assets/javascripts/pages/admin/serverless/domains/index.js +++ /dev/null @@ -1,17 +0,0 @@ -import initSettingsPanels from '~/settings_panels'; - -// 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'); - -if (domainReplaceButton && domainCard && domainForm) { - domainReplaceButton.addEventListener('click', () => { - domainCard.classList.add('hidden'); - domainForm.classList.remove('hidden'); - domainSubmitButton.removeAttribute('disabled'); - }); -} diff --git a/app/assets/stylesheets/pages/pages.scss b/app/assets/stylesheets/pages/pages.scss index 93caa345f8a..ebaf875ad8f 100644 --- a/app/assets/stylesheets/pages/pages.scss +++ b/app/assets/stylesheets/pages/pages.scss @@ -55,16 +55,4 @@ border-bottom-right-radius: $border-radius-default; border-top-right-radius: $border-radius-default; } - - &.floating-status-badge { - position: absolute; - right: $gl-padding-24; - bottom: $gl-padding-4; - margin-bottom: 0; - } -} - -.form-control.has-floating-status-badge { - position: relative; - padding-right: 120px; } |