-
{{ $t('montage-round-check-same-name-title') }}
+
{{ $t('montage-round-check-same-name-title') }}
{{
isCategory
@@ -40,9 +61,9 @@
⟷
{{ ' ' + $t('montage-round-check-and') + ' ' }}
- {{ member.commons_name }}
+ {{ member.commons_name }}
- {{ member.commons_name }}{{ member.commons_name }}{{ ' '
}}{{
$t('montage-round-check-row-ref', [member.row])
@@ -61,10 +82,10 @@
class="import-check-table-wrapper"
tabindex="0"
role="region"
- :aria-label="$t('montage-round-check-issues-label')"
+ aria-labelledby="import-check-issues-caption"
>
-
+
{{
$t('montage-round-check-issues-label')
}}
@@ -85,15 +106,25 @@
:key="issue.row"
:class="{ 'import-check-blocking-row': blocks(issue) }"
>
- | {{ issue.row }} |
- {{ issue.name_as_written }} |
+ {{ issue.row }} |
+
+ {{ issue.name_as_written }}
+ |
{{ issue.file_id_as_written }} |
- {{ issue.commons_name }} |
+
+ {{ issue.commons_name }}
+ |
{{ statusLabel(issue.status) }}
{{ $t('montage-round-check-blocks') }}
|
- {{ issue.reason }} |
+
+ {{ reason(issue).text }}
+ |
@@ -106,6 +137,9 @@
? $t('montage-round-check-download-partial')
: $t('montage-round-check-download')
}}
+
+
{{ $t('montage-round-check-download-partial-help') }}
+
{{ $t('montage-round-check-download-issues') }}
@@ -118,13 +152,16 @@
import { computed, ref } from 'vue'
import { useI18n } from 'vue-i18n'
import { CdxMessage } from '@wikimedia/codex'
+import { reasonText } from '@/components/Round/importCheckText'
-const { t: $t } = useI18n()
+const { t: $t, te } = useI18n()
const props = defineProps({
result: { type: Object, default: null },
error: { type: String, default: null },
errorDetail: { type: String, default: null },
+ // the detail is the server's English text (not translated)
+ errorDetailEnglish: { type: Boolean, default: false },
downloadUrl: { type: String, default: null },
issuesUrl: { type: String, default: null }
})
@@ -171,6 +208,8 @@ const summaryText = computed(() => {
// a row blocks only where the check as a whole blocks (lists, not categories)
const blocks = (issue) => !!props.result?.blocking && blockingStatuses.includes(issue.status)
+const reason = (issue) => reasonText($t, te, issue)
+
// montage-round-check-status-ok, -renamed, -duplicate, -unknown-name,
// -unknown-file-id, -malformed-file-id, -page-id, -revision-id, -ambiguous-id,
// -same-name
@@ -183,8 +222,14 @@ const statusLabel = (status) => $t('montage-round-check-status-' + status.replac
margin-bottom: 12px;
}
-.import-check-result:focus {
- outline: none;
+.import-check-result:focus-visible {
+ outline: 1px dotted #72777d;
+ outline-offset: 2px;
+}
+
+.import-check-heading {
+ font-size: 1em;
+ margin: 12px 0 4px;
}
.import-check-counts {
@@ -211,14 +256,23 @@ const statusLabel = (status) => $t('montage-round-check-status-' + status.replac
border-collapse: collapse;
font-size: 0.875em;
width: 100%;
+ /* on narrow screens the table scrolls sideways instead of squeezing */
+ min-width: 36rem;
}
.import-check-table th,
.import-check-table td {
border: 1px solid #c8ccd1;
padding: 2px 6px;
- text-align: left;
+ text-align: start;
vertical-align: top;
+}
+
+.import-check-table tbody th {
+ font-weight: normal;
+}
+
+.import-check-name-cell {
overflow-wrap: anywhere;
}
@@ -236,6 +290,11 @@ const statusLabel = (status) => $t('montage-round-check-status-' + status.replac
.import-check-member {
display: block;
}
+
+ /* no scroll area inside the page scroll on phones */
+ .import-check-table-wrapper {
+ max-height: none;
+ }
}
.import-check-row {
diff --git a/frontend/src/components/Round/RoundNew.vue b/frontend/src/components/Round/RoundNew.vue
index 6c0f7e6e..ee92643d 100644
--- a/frontend/src/components/Round/RoundNew.vue
+++ b/frontend/src/components/Round/RoundNew.vue
@@ -1,5 +1,7 @@
-
- {{ announcement }}
-
- {{ saveError }}
-
- {{ saveErrorDetail }}
-
-
+
+
+
+ {{ saveError }}
+
+ {{ saveErrorDetail }}
+
+
+