Skip to content

Commit 3fe670b

Browse files
committed
Fix schedule entry self delete
1 parent 582d805 commit 3fe670b

File tree

5 files changed

+52
-8
lines changed

5 files changed

+52
-8
lines changed

frontend/src/components/activity/ScheduleEntry.vue

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,11 @@ Displays a single scheduleEntry
168168
<table>
169169
<thead>
170170
<tr>
171-
<th scope="col" class="text-right pb-2 pr-4">
171+
<th
172+
v-if="category.numberingStyle !== '-'"
173+
scope="col"
174+
class="text-right pb-2 pr-4"
175+
>
172176
{{ $tc('entity.scheduleEntry.fields.nr') }}
173177
</th>
174178
<th scope="col" class="text-left pb-2 pr-4">
@@ -184,8 +188,20 @@ Displays a single scheduleEntry
184188
v-for="scheduleEntryItem in scheduleEntries"
185189
:key="scheduleEntryItem._meta.self"
186190
>
187-
<th class="text-right tabular-nums pb-2 pr-4">
188-
{{ scheduleEntryItem.number }}
191+
<th
192+
v-if="category.numberingStyle !== '-'"
193+
class="text-right tabular-nums pb-2 pr-4"
194+
>
195+
<RouterLink
196+
v-if="scheduleEntryItem._meta.self !== scheduleEntry()._meta.self"
197+
:to="scheduleEntryRoute(scheduleEntryItem)"
198+
class="e-title-link"
199+
>
200+
{{ scheduleEntryItem.number }}
201+
</RouterLink>
202+
<template v-else>
203+
{{ scheduleEntryItem.number }}
204+
</template>
189205
</th>
190206
<td class="text-left tabular-nums pb-2 pr-4">
191207
{{
@@ -196,7 +212,19 @@ Displays a single scheduleEntry
196212
{{ dateShort(scheduleEntryItem.start) }}
197213
</td>
198214
<td class="text-left tabular-nums pb-2 pr-0">
199-
{{ rangeLongEnd(scheduleEntryItem.start, scheduleEntryItem.end) }}
215+
<RouterLink
216+
v-if="
217+
category.numberingStyle === '-' &&
218+
scheduleEntryItem._meta.self !== scheduleEntry()._meta.self
219+
"
220+
:to="scheduleEntryRoute(scheduleEntryItem)"
221+
class="e-title-link"
222+
>
223+
{{ rangeLongEnd(scheduleEntryItem.start, scheduleEntryItem.end) }}
224+
</RouterLink>
225+
<template v-else>
226+
{{ rangeLongEnd(scheduleEntryItem.start, scheduleEntryItem.end) }}
227+
</template>
200228
</td>
201229
</tr>
202230
</tbody>
@@ -404,6 +432,7 @@ export default {
404432
this.$toast.error(errorToMultiLineToast(e))
405433
})
406434
},
435+
scheduleEntryRoute,
407436
countContentNodes(contentType) {
408437
return this.contentNodes.items.filter((cn) => {
409438
return cn.contentType().id === contentType.id

frontend/src/components/activity/dialog/DialogActivityEdit.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
</template>
2020
<DialogActivityForm
2121
:activity="entityData"
22+
:current-schedule-entry="scheduleEntry"
2223
:period="scheduleEntry.period"
2324
:hide-location="hideHeaderFields"
2425
/>

frontend/src/components/activity/dialog/DialogActivityForm.vue

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
<FormScheduleEntryList
4242
v-if="activity.scheduleEntries"
4343
:schedule-entries="activity.scheduleEntries"
44+
:current-schedule-entry="currentScheduleEntry"
4445
:period="period"
4546
:periods="camp.periods().items"
4647
/>
@@ -69,6 +70,10 @@ export default {
6970
type: Object,
7071
required: true,
7172
},
73+
currentScheduleEntry: {
74+
type: Object,
75+
required: true,
76+
},
7277
autoselectTitle: {
7378
type: Boolean,
7479
default: false,

frontend/src/components/activity/dialog/FormScheduleEntryItem.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
</v-col>
5151

5252
<v-col cols="1" class="pt-3 text-center">
53-
<button-delete v-if="!isLastItem" icon-only @click="$emit('delete')" />
53+
<button-delete v-if="deletable" icon-only @click="$emit('delete')" />
5454
</v-col>
5555
</v-row>
5656
</v-container>
@@ -82,9 +82,9 @@ export default {
8282
},
8383
8484
// true if current item is the last scheduleEntry
85-
isLastItem: {
85+
deletable: {
8686
type: Boolean,
87-
required: true,
87+
required: false,
8888
},
8989
},
9090
data() {

frontend/src/components/activity/dialog/FormScheduleEntryList.vue

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,11 @@
2222
class="transition-list-item pa-0 mb-4"
2323
:schedule-entry="scheduleEntry"
2424
:periods="periods"
25-
:is-last-item="scheduleEntriesWithoutDeleted.length === 1"
25+
:deletable="
26+
scheduleEntriesWithoutDeleted.length > 1 &&
27+
($route.name !== 'activity' ||
28+
scheduleEntry.self !== currentScheduleEntry._meta.self)
29+
"
2630
@delete="deleteEntry(scheduleEntry)"
2731
/>
2832
</transition-group>
@@ -47,6 +51,11 @@ export default {
4751
required: true,
4852
},
4953
54+
currentScheduleEntry: {
55+
type: Object,
56+
required: true,
57+
},
58+
5059
// all available periods
5160
periods: {
5261
type: Array,

0 commit comments

Comments
 (0)