+ :data-region="georegion.resource_uri"
+ >
{{ georegion.name }}
diff --git a/frontend/javascript/components/geomatch/geo-matcher.vue b/frontend/javascript/components/geomatch/geo-matcher.vue
index 1536a1ff2..4e275bb8b 100644
--- a/frontend/javascript/components/geomatch/geo-matcher.vue
+++ b/frontend/javascript/components/geomatch/geo-matcher.vue
@@ -41,7 +41,8 @@
v-for="georegion in georegions"
:key="georegion.id"
:georegion="georegion"
- @connectpublicbody="connectPublicBody" />
+ @connectpublicbody="connectPublicBody"
+ />
diff --git a/frontend/javascript/components/makerequest/request-form-breadcrumbs.vue b/frontend/javascript/components/makerequest/request-form-breadcrumbs.vue
index 6a4a10251..018a2f988 100644
--- a/frontend/javascript/components/makerequest/request-form-breadcrumbs.vue
+++ b/frontend/javascript/components/makerequest/request-form-breadcrumbs.vue
@@ -7,18 +7,21 @@
:class="{
active: stepSelectPublicBody,
done: stepSelectPublicBodyDone
- }">
+ }"
+ >
+ @click.prevent="setStepSelectPublicBody"
+ >
+ aria-hidden="true"
+ >
{{ i18n.choosePublicBody }}
@@ -28,7 +31,8 @@
'fa-check-circle': stepSelectPublicBodyDone,
'fa-circle-o': !stepSelectPublicBodyDone
}"
- aria-hidden="true">
+ aria-hidden="true"
+ >
{{ i18n.choosePublicBody }}
@@ -37,18 +41,21 @@
:class="{
active: stepReviewPublicBodies,
done: stepReviewPublicBodiesDone
- }">
+ }"
+ >
+ @click.prevent="setStepReviewPublicBody"
+ >
+ aria-hidden="true"
+ >
{{ i18n.checkSelection }}
@@ -60,14 +67,16 @@
+ @click.prevent="setStepRequest"
+ >
+ aria-hidden="true"
+ >
{{ i18n.makeRequest }}
@@ -77,7 +86,8 @@
'fa-check-circle': stepWriteRequestDone,
'fa-circle-o': !stepWriteRequestDone
}"
- aria-hidden="true">
+ aria-hidden="true"
+ >
{{ i18n.makeRequest }}
@@ -85,7 +95,8 @@
+ v-if="stepWriteRequest"
+ >
{{ i18n.checkRequest }}
diff --git a/frontend/javascript/components/makerequest/request-form.vue b/frontend/javascript/components/makerequest/request-form.vue
index 5802086a9..50b5954f8 100644
--- a/frontend/javascript/components/makerequest/request-form.vue
+++ b/frontend/javascript/components/makerequest/request-form.vue
@@ -4,7 +4,8 @@
+ class="publicbody-summary-container"
+ >
@@ -21,7 +22,8 @@
+ @click.prevent="$emit('setStepSelectPublicBody')"
+ >
{{ i18n.change }}
@@ -52,7 +54,8 @@
+ @click.prevent="$emit('setStepSelectPublicBody')"
+ >
{{ i18n.change }}
@@ -76,7 +79,8 @@
:key="pb.id"
type="hidden"
name="publicbody"
- :value="pb.id" />
+ :value="pb.id"
+ />
@@ -89,18 +93,21 @@
+ "
+ >
{{ subject }}
@@ -150,13 +159,15 @@
+ readonly
+ />
+ class="alert alert-warning"
+ >
-
{{ error }}
@@ -166,14 +177,16 @@
+ class="alert alert-danger"
+ >
{{ error.message }}
@@ -192,24 +205,29 @@
:rows="bodyRows"
:placeholder="formFields.body.placeholder"
required
- @keyup="bodyChanged" />
+ @keyup="bodyChanged"
+ />
+ class="form-check form-check-inline float-end"
+ >
+ :disabled="fullTextDisabled"
+ />
@@ -220,7 +238,8 @@
class="show-full-letter"
href="#"
@click.prevent="showFullLetter"
- v-text="'[…]'" />
+ v-text="'[…]'"
+ />
{{ letterEndShort }}
{{ letterEnd }}
@@ -231,7 +250,8 @@
+ v-text="letterSignatureName"
+ />
@@ -239,11 +259,13 @@
+ :class="{ 'text-danger': usererrors.first_name }"
+ >
+ required
+ />
{{ e.message }}
@@ -262,11 +285,13 @@
+ :class="{ 'text-danger': usererrors.last_name }"
+ >
+ required
+ />
{{ e.message }}
@@ -287,13 +313,15 @@
+ v-html="userformFields.last_name.help_text"
+ />
+ class="row mt-2"
+ >
diff --git a/frontend/javascript/components/makerequest/request-page.vue b/frontend/javascript/components/makerequest/request-page.vue
index 6ea5286cc..1664940e0 100644
--- a/frontend/javascript/components/makerequest/request-page.vue
+++ b/frontend/javascript/components/makerequest/request-page.vue
@@ -4,7 +4,8 @@
:i18n="i18n"
:multi-request="multiRequest"
:has-public-bodies="hasPublicBodies"
- :hide-publicbody-chooser="hidePublicbodyChooser" />
+ :hide-publicbody-chooser="hidePublicbodyChooser"
+ />
@@ -14,13 +15,15 @@
diff --git a/frontend/javascript/components/messageredaction/message-redaction-field.vue b/frontend/javascript/components/messageredaction/message-redaction-field.vue
index 4743d9ff3..36004aea9 100644
--- a/frontend/javascript/components/messageredaction/message-redaction-field.vue
+++ b/frontend/javascript/components/messageredaction/message-redaction-field.vue
@@ -9,7 +9,8 @@
:redacted="word.redacted"
:index="word.index"
:blocked="word.blocked"
- @redact="redact" />
+ @redact="redact"
+ />
{{ word.word }}
diff --git a/frontend/javascript/components/messageredaction/message-redaction.vue b/frontend/javascript/components/messageredaction/message-redaction.vue
index f04b26544..e21b02e7c 100644
--- a/frontend/javascript/components/messageredaction/message-redaction.vue
+++ b/frontend/javascript/components/messageredaction/message-redaction.vue
@@ -8,9 +8,8 @@
+ :redacted-parts="message.redacted_subject"
+ >
@@ -21,9 +20,8 @@
+ :blocked-patterns="config.settings.blockedPatterns"
+ >
diff --git a/frontend/javascript/components/moderation/moderation-attachments.vue b/frontend/javascript/components/moderation/moderation-attachments.vue
index 489478d56..9e208757b 100644
--- a/frontend/javascript/components/moderation/moderation-attachments.vue
+++ b/frontend/javascript/components/moderation/moderation-attachments.vue
@@ -30,7 +30,8 @@
diff --git a/frontend/javascript/components/moderation/moderation-dashboard.vue b/frontend/javascript/components/moderation/moderation-dashboard.vue
index 3965323f9..cd686f4f5 100644
--- a/frontend/javascript/components/moderation/moderation-dashboard.vue
+++ b/frontend/javascript/components/moderation/moderation-dashboard.vue
@@ -18,7 +18,8 @@
class="nav-link"
:class="{ active: tab === 'problemreports' }"
href="#problemreports"
- @click="tab = 'problemreports'">
+ @click="tab = 'problemreports'"
+ >
{{ i18n.problemReports }}
{{
problemreportsCount
@@ -30,7 +31,8 @@
class="nav-link"
:class="{ active: tab === 'publicbodies' }"
href="#publicbodies"
- @click="tab = 'publicbodies'">
+ @click="tab = 'publicbodies'"
+ >
{{ i18n.publicBodyChangeProposals }}
{{ publicbodiesCount }}
@@ -40,7 +42,8 @@
class="nav-link"
:class="{ active: tab === 'unclassified' }"
href="#unclassified"
- @click="tab = 'unclassified'">
+ @click="tab = 'unclassified'"
+ >
{{ i18n.unclassifiedRequests }}
{{ unclassifiedCount }}
@@ -50,7 +53,8 @@
class="nav-link"
:class="{ active: tab === 'attachments' }"
href="#attachments"
- @click="tab = 'attachments'">
+ @click="tab = 'attachments'"
+ >
{{ i18n.attachments }}
{{ attachmentsCount }}
@@ -59,16 +63,20 @@
+ :reports="reports"
+ />
+ :publicbodies="publicbodies"
+ />
+ :unclassified="unclassified"
+ />
+ :attachments="attachments"
+ />
diff --git a/frontend/javascript/components/moderation/moderation-problem.vue b/frontend/javascript/components/moderation/moderation-problem.vue
index 65a74d05b..072a89562 100644
--- a/frontend/javascript/components/moderation/moderation-problem.vue
+++ b/frontend/javascript/components/moderation/moderation-problem.vue
@@ -3,7 +3,8 @@
:class="{
'table-secondary': claimedByOther,
'table-primary': claimedByMe
- }">
+ }"
+ >
|
{{ emoji }}
|
@@ -11,7 +12,8 @@
{{ reportTimestampFormatted }}
+ class="badge text-bg-secondary"
+ >
{{ i18n.isNotRequester }}
@@ -26,7 +28,8 @@
+ target="_blank"
+ >
{{ i18n.toMessage }}
@@ -34,7 +37,8 @@
v-if="showPublicBodyLink"
class="ms-3 btn btn-outline-secondary btn-sm"
:href="publicBodyLink"
- target="_blank">
+ target="_blank"
+ >
{{ i18n.toPublicBody }}
@@ -67,7 +71,8 @@
v-if="!report.claimed"
class="btn btn-sm btn-primary"
:disabled="!canClaim"
- @click="claim">
+ @click="claim"
+ >
{{ i18n.claim }}
diff --git a/frontend/javascript/components/moderation/moderation-problems.vue b/frontend/javascript/components/moderation/moderation-problems.vue
index 8838a5158..18a88295b 100644
--- a/frontend/javascript/components/moderation/moderation-problems.vue
+++ b/frontend/javascript/components/moderation/moderation-problems.vue
@@ -21,7 +21,8 @@
@claim="claim"
@unclaim="unclaim"
@resolve="resolve"
- @escalate="escalate" />
+ @escalate="escalate"
+ />
diff --git a/frontend/javascript/components/moderation/moderation-publicbodies.vue b/frontend/javascript/components/moderation/moderation-publicbodies.vue
index 67811cf21..3701f1332 100644
--- a/frontend/javascript/components/moderation/moderation-publicbodies.vue
+++ b/frontend/javascript/components/moderation/moderation-publicbodies.vue
@@ -27,7 +27,8 @@
+ target="_blank"
+ >
{{ i18n.reviewChangedPublicBody }}
@@ -35,7 +36,8 @@
+ target="_blank"
+ >
{{ i18n.reviewNewPublicBody }}
diff --git a/frontend/javascript/components/moderation/moderation-unclassified.vue b/frontend/javascript/components/moderation/moderation-unclassified.vue
index f3ca55470..ae8ad8b15 100644
--- a/frontend/javascript/components/moderation/moderation-unclassified.vue
+++ b/frontend/javascript/components/moderation/moderation-unclassified.vue
@@ -24,7 +24,8 @@
+ target="_blank"
+ >
{{ i18n.setStatus }}
diff --git a/frontend/javascript/components/postupload/online-help.vue b/frontend/javascript/components/postupload/online-help.vue
index 5c93f8223..653a70590 100644
--- a/frontend/javascript/components/postupload/online-help.vue
+++ b/frontend/javascript/components/postupload/online-help.vue
@@ -62,10 +62,12 @@ defineExpose({
class="modal"
tabindex="-1"
role="dialog"
- id="onlinehelp-modal">
+ id="onlinehelp-modal"
+ >
+ role="document"
+ >
+ v-show="isFetching"
+ />
diff --git a/frontend/javascript/components/postupload/post-upload.vue b/frontend/javascript/components/postupload/post-upload.vue
index e2c5c6cdc..627124506 100644
--- a/frontend/javascript/components/postupload/post-upload.vue
+++ b/frontend/javascript/components/postupload/post-upload.vue
@@ -55,9 +55,7 @@ const debugSkipDate = () => {
* sent in the Form's context means "negated is_response"
* TODO: this should be cleaned up at the model level.
*/
-const formSent = ref(
- props.message?.is_response ? '0' : '1'
-)
+const formSent = ref(props.message?.is_response ? '0' : '1')
const formIsSent = computed(() => formSent.value === '1')
const formPublicbodyIsDefault = ref(true)
@@ -261,7 +259,9 @@ const pdfRedaction = ref()
const pdfRedactionCurrentIndex = computed(() => {
// stepHistory can contain the same step multiple times;
// we'll use the amount of the REDACT step implicitly to select the nth document for redaction
- const index1based = stepHistory.filter(_ => _ === STEP_REDACTION_REDACT).length
+ const index1based = stepHistory.filter(
+ (_) => _ === STEP_REDACTION_REDACT
+ ).length
if (index1based === 0) return false
return index1based - 1
})
@@ -296,15 +296,17 @@ const pdfRedactionUploaded = () => {
const firstStep = STEP_INTRO
const stepHistory = reactive([firstStep])
-const step = computed(() =>
+const step = computed(() =>
stepHistory.length ? stepHistory[stepHistory.length - 1] : false
)
const stepContext = computed(() => stepsConfig[step.value].context || {})
const gotoStep = (nextStep) => {
- if (!nextStep) nextStep = typeof stepsConfig[step.value].next === 'function'
- ? stepsConfig[step.value].next()
- : stepsConfig[step.value].next
+ if (!nextStep)
+ nextStep =
+ typeof stepsConfig[step.value].next === 'function'
+ ? stepsConfig[step.value].next()
+ : stepsConfig[step.value].next
stepHistory.push(nextStep)
stepsConfig[nextStep].onEnter?.()
scrollNavIntoViewIfNecessary()
@@ -396,7 +398,7 @@ const stepsConfig = {
next: STEP_DOCUMENTS_OVERVIEW,
context: {
progressStep: 0,
- mobileHeaderTitle: 'Brief hochladen oder scannen',
+ mobileHeaderTitle: 'Brief hochladen oder scannen'
}
},
[STEP_DOCUMENTS_OVERVIEW]: {
@@ -425,7 +427,9 @@ const stepsConfig = {
[STEP_MESSAGE_PUBLICBODY_CHECK]: {
next: () => {
if (isDesktop.value) return STEP_MESSAGE_DATE
- return formPublicbodyIsDefault.value ? STEP_MESSAGE_DATE : STEP_MESSAGE_PUBLICBODY_UPDATE
+ return formPublicbodyIsDefault.value
+ ? STEP_MESSAGE_DATE
+ : STEP_MESSAGE_PUBLICBODY_UPDATE
},
context: {
progressStep: 1,
@@ -442,7 +446,9 @@ const stepsConfig = {
[STEP_MESSAGE_DATE]: {
next: () => {
if (isDesktop.value) return STEP_MESSAGE_STATUS
- return values.is_registered_mail ? STEP_MESSAGE_DATE_REGISTERED_MAIL : STEP_MESSAGE_STATUS
+ return values.is_registered_mail
+ ? STEP_MESSAGE_DATE_REGISTERED_MAIL
+ : STEP_MESSAGE_STATUS
},
onEnter: () => {
updateValidity('date')
@@ -452,7 +458,8 @@ const stepsConfig = {
progressStep: 1,
mobileHeaderTitle: 'Infos eingeben',
isGotoValid: () => {
- if (isDesktop.value && values.is_registered_mail) return validity.date && validity.registered_mail_date
+ if (isDesktop.value && values.is_registered_mail)
+ return validity.date && validity.registered_mail_date
return validity.date
}
}
@@ -471,10 +478,13 @@ const stepsConfig = {
},
[STEP_MESSAGE_STATUS]: {
next: () => {
- if (!isDesktop.value && formStatusIsResolved.value) return STEP_MESSAGE_MESSAGE_RESOLUTION
+ if (!isDesktop.value && formStatusIsResolved.value)
+ return STEP_MESSAGE_MESSAGE_RESOLUTION
// TODO: replace all STEP_REDACTION_PICKER with `if uploadedDocuments.length === 1 ? ... : STEP_REDACTION_PICKER`
if (formIsSent.value) return STEP_REDACTION_PICKER
- return formHasHadCost ? STEP_MESSAGE_COST_CHECK_LAST : STEP_MESSAGE_COST_CHECK_ANY
+ return formHasHadCost
+ ? STEP_MESSAGE_COST_CHECK_LAST
+ : STEP_MESSAGE_COST_CHECK_ANY
},
context: {
progressStep: 1,
@@ -484,7 +494,9 @@ const stepsConfig = {
[STEP_MESSAGE_MESSAGE_RESOLUTION]: {
next: () => {
if (formIsSent.value) return STEP_REDACTION_PICKER
- return formHasHadCost ? STEP_MESSAGE_COST_CHECK_LAST : STEP_MESSAGE_COST_CHECK_ANY
+ return formHasHadCost
+ ? STEP_MESSAGE_COST_CHECK_LAST
+ : STEP_MESSAGE_COST_CHECK_ANY
},
context: {
progressStep: 1,
@@ -493,7 +505,8 @@ const stepsConfig = {
},
[STEP_MESSAGE_COST_CHECK_ANY]: {
next: () => {
- if (!isDesktop.value && formDoUpdateCost.value) return STEP_MESSAGE_COST_UPDATE
+ if (!isDesktop.value && formDoUpdateCost.value)
+ return STEP_MESSAGE_COST_UPDATE
return STEP_REDACTION_PICKER
},
context: {
@@ -503,7 +516,8 @@ const stepsConfig = {
},
[STEP_MESSAGE_COST_CHECK_LAST]: {
next: () => {
- if (!isDesktop.value && formDoUpdateCost.value) return STEP_MESSAGE_COST_UPDATE
+ if (!isDesktop.value && formDoUpdateCost.value)
+ return STEP_MESSAGE_COST_UPDATE
return STEP_REDACTION_PICKER
},
context: {
@@ -528,7 +542,8 @@ const stepsConfig = {
},
[STEP_REDACTION_PICKER]: {
next: () => {
- if (documentsSelectedPdfRedaction.value.length === 0) return STEP_DOCUMENTS_OVERVIEW_REDACTED
+ if (documentsSelectedPdfRedaction.value.length === 0)
+ return STEP_DOCUMENTS_OVERVIEW_REDACTED
return STEP_REDACTION_REDACT // TODO
},
onEnter: () => {
@@ -553,7 +568,7 @@ const stepsConfig = {
},
context: {
progressStep: 2,
- mobileHeaderTitle: 'Schwärzen',
+ mobileHeaderTitle: 'Schwärzen'
}
},
[STEP_DOCUMENTS_OVERVIEW_REDACTED]: {
@@ -586,12 +601,21 @@ const stepsConfig = {
/* --- state machine, visualization --- */
-const stepsConfigVisualize = (c) => 'dot -Tpng << eot | display -\n' +
+const stepsConfigVisualize = (c) =>
+ 'dot -Tpng << eot | display -\n' +
'digraph "postupload" {\n' +
- Object.keys(c).map(state => ` "${state}";\n`).join('') +
- Object.keys(c).map(from => c[from].next.toString().match(/\bSTEP_\w+/g)
- .map(to =>` "${from}" -> "${to}";\n`).join('')
- ).join('') +
+ Object.keys(c)
+ .map((state) => ` "${state}";\n`)
+ .join('') +
+ Object.keys(c)
+ .map((from) =>
+ c[from].next
+ .toString()
+ .match(/\bSTEP_\w+/g)
+ .map((to) => ` "${from}" -> "${to}";\n`)
+ .join('')
+ )
+ .join('') +
'}\n' +
'eot\n'
@@ -629,7 +653,6 @@ addEventListener('hashchange', () => {
step.value = getStepFromHash()
})
*/
-
@@ -639,7 +662,8 @@ addEventListener('hashchange', () => {
+ :steps="['Hochladen', 'Infos eingeben', 'Schwärzen']"
+ >
{{ i18n.done }}
@@ -679,14 +703,16 @@ addEventListener('hashchange', () => {
@@ -744,8 +770,9 @@ addEventListener('hashchange', () => {
@@ -801,7 +828,8 @@ addEventListener('hashchange', () => {
+ class="form-control"
+ />
@@ -829,7 +857,8 @@ addEventListener('hashchange', () => {
class="form-check"
v-for="(choice, choiceIndex) in form.fields.sent.choices"
:key="choice.value"
- :class="{ 'is-invalid': choice.errors }">
+ :class="{ 'is-invalid': choice.errors }"
+ >
{
required=""
class="form-check-input"
:id="'id_sent_' + choiceIndex"
- :value="choice.value" />
+ :value="choice.value"
+ />
@@ -874,14 +904,16 @@ addEventListener('hashchange', () => {
{ value: true, label: 'Ja.' },
{ value: false, label: 'Nein, andere Behörde wählen' }
]"
- :key="choiceIndex">
+ :key="choiceIndex"
+ >
+ :value="choice.value"
+ />
@@ -27,7 +28,8 @@
:row="row"
:headers="headers"
:selected="row.isSelected"
- @update:row="updateRow">
+ @update:row="updateRow"
+ >