polishing, some breadcrumbs, predefined mutations implemented more
This commit is contained in:
@@ -3,25 +3,25 @@ import { Head, Link } from '@inertiajs/vue3';
|
||||
import { route } from 'ziggy-js';
|
||||
|
||||
defineOptions({
|
||||
layout: {
|
||||
layout: (props: any) => ({
|
||||
breadcrumbs: [
|
||||
{
|
||||
name: 'Dynamics',
|
||||
title: 'Dynamics',
|
||||
href: route('dynamics.index'),
|
||||
isCurrent: false,
|
||||
},
|
||||
{
|
||||
name: 'dynamic.name',
|
||||
href: 'route(\'dynamics.show\', dynamic.id)',
|
||||
isCurrent: false,
|
||||
title: props.dynamic.name,
|
||||
href: route('dynamics.show', props.dynamic.id),
|
||||
},
|
||||
{
|
||||
name: 'participant.display_name',
|
||||
href: 'route(\'dynamics.users.show\', { dynamic: dynamic.id, user: participant.id })',
|
||||
isCurrent: true,
|
||||
title: props.participant.display_name ?? props.participant.name,
|
||||
href: route('dynamics.users.show', [
|
||||
props.dynamic.id,
|
||||
props.participant.id,
|
||||
]),
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
});
|
||||
|
||||
const props = defineProps<{
|
||||
@@ -44,21 +44,6 @@ const props = defineProps<{
|
||||
ledger: { id: number; name: string };
|
||||
}>;
|
||||
}>();
|
||||
|
||||
const breadcrumbs = [
|
||||
{
|
||||
name: 'Dynamics',
|
||||
href: route('dynamics.index'),
|
||||
},
|
||||
{
|
||||
name: props.dynamic.name,
|
||||
href: route('dynamics.show', props.dynamic.id),
|
||||
},
|
||||
{
|
||||
name: props.participant.display_name ?? props.participant.name,
|
||||
href: route('dynamics.users.show', [props.dynamic.id, props.participant.id]),
|
||||
},
|
||||
];
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -67,7 +52,10 @@ const breadcrumbs = [
|
||||
<div class="c-participant-show">
|
||||
<div class="c-participant-show__container">
|
||||
<h2 class="c-participant-show__title">
|
||||
Activity for {{ participant.display_name ?? participant.name }} ({{ participant.role.toUpperCase() }}) in {{ dynamic.name }}
|
||||
Activity for
|
||||
{{ participant.display_name ?? participant.name }} ({{
|
||||
participant.role.toUpperCase()
|
||||
}}) in {{ dynamic.name }}
|
||||
</h2>
|
||||
|
||||
<div class="c-participant-show__activity-list">
|
||||
@@ -76,16 +64,45 @@ const breadcrumbs = [
|
||||
:key="mutation.id"
|
||||
class="c-participant-show__activity-item"
|
||||
>
|
||||
<Link :href="route('dynamics.ledgers.show', [dynamic.id, mutation.ledger.id])" class="block">
|
||||
<Link
|
||||
:href="
|
||||
route('dynamics.ledgers.show', [
|
||||
dynamic.id,
|
||||
mutation.ledger.id,
|
||||
])
|
||||
"
|
||||
class="block"
|
||||
>
|
||||
<div class="c-participant-show__activity-meta">
|
||||
<span class="c-participant-show__activity-time">
|
||||
{{ new Date(mutation.created_at).toLocaleString() }}
|
||||
{{
|
||||
new Date(
|
||||
mutation.created_at,
|
||||
).toLocaleString()
|
||||
}}
|
||||
</span>
|
||||
<span class="font-semibold ml-2" :class="mutation.amount > 0 ? 'text-green-600 dark:text-green-400' : 'text-red-600 dark:text-red-400'">
|
||||
{{ mutation.amount > 0 ? '+' : '' }}{{ mutation.amount }}
|
||||
<span
|
||||
class="ml-2 font-semibold"
|
||||
:class="
|
||||
mutation.amount > 0
|
||||
? 'text-green-600 dark:text-green-400'
|
||||
: 'text-red-600 dark:text-red-400'
|
||||
"
|
||||
>
|
||||
{{ mutation.amount > 0 ? '+' : ''
|
||||
}}{{ mutation.amount }}
|
||||
</span>
|
||||
<span class="text-neutral-400 ml-2">on {{ mutation.ledger.name }}</span>
|
||||
<span class="uppercase text-xs px-1.5 py-0.5 rounded ml-auto" :class="mutation.status === 'approved' ? 'bg-green-100 text-green-700 dark:bg-green-950/30 dark:text-green-400' : 'bg-yellow-100 text-yellow-700 dark:bg-yellow-950/30 dark:text-yellow-400'">
|
||||
<span class="ml-2 text-neutral-400"
|
||||
>on {{ mutation.ledger.name }}</span
|
||||
>
|
||||
<span
|
||||
class="ml-auto rounded px-1.5 py-0.5 text-xs uppercase"
|
||||
:class="
|
||||
mutation.status === 'approved'
|
||||
? 'bg-green-100 text-green-700 dark:bg-green-950/30 dark:text-green-400'
|
||||
: 'bg-yellow-100 text-yellow-700 dark:bg-yellow-950/30 dark:text-yellow-400'
|
||||
"
|
||||
>
|
||||
{{ mutation.status }}
|
||||
</span>
|
||||
</div>
|
||||
@@ -94,8 +111,12 @@ const breadcrumbs = [
|
||||
</p>
|
||||
</Link>
|
||||
</div>
|
||||
<div v-if="mutations.length === 0" class="text-neutral-500 text-sm">
|
||||
No mutations recorded for this participant in this Dynamic yet.
|
||||
<div
|
||||
v-if="mutations.length === 0"
|
||||
class="text-sm text-neutral-500"
|
||||
>
|
||||
No mutations recorded for this participant in this Dynamic
|
||||
yet.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -135,6 +156,6 @@ const breadcrumbs = [
|
||||
}
|
||||
|
||||
.c-participant-show__activity-desc {
|
||||
@apply text-sm text-neutral-600 dark:text-neutral-400 mt-1;
|
||||
@apply mt-1 text-sm text-neutral-600 dark:text-neutral-400;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -6,20 +6,18 @@ import { Head, Link as InertiaLink } from '@inertiajs/vue3';
|
||||
import { route } from 'ziggy-js';
|
||||
|
||||
defineOptions({
|
||||
layout: {
|
||||
layout: (props: any) => ({
|
||||
breadcrumbs: [
|
||||
{
|
||||
name: 'Dynamics',
|
||||
title: 'Dynamics',
|
||||
href: route('dynamics.index'),
|
||||
isCurrent: false,
|
||||
},
|
||||
{
|
||||
name: 'dynamic.name',
|
||||
href: 'route(\'dynamics.show\', dynamic.id)',
|
||||
isCurrent: true,
|
||||
title: props.dynamic.name,
|
||||
href: route('dynamics.show', props.dynamic.uuid),
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
});
|
||||
|
||||
const props = defineProps<{
|
||||
|
||||
Reference in New Issue
Block a user