start linking notification to project based of project page UUID

This commit is contained in:
isUnknown 2025-01-09 16:11:59 +01:00
parent 5f734ab45b
commit 8c6e21c707
4 changed files with 23 additions and 8 deletions

View file

@ -5,19 +5,22 @@ use Kirby;
class ProjectDetails
{
public string $title;
public string $uri;
private string $title;
private string $uri;
private string $uuid;
public function __construct(Kirby\Cms\Page $page)
{
$this->title = (string) $page->title();
$this->uri = (string) $page->uri();
$this->uuid = (string) $page->uuid();
}
public function toArray() {
return [
"title" => $this->title,
"uri" => $this->uri
"uri" => $this->uri,
"uuid" => $this->uuid,
];
}
}

View file

@ -8,7 +8,8 @@ function getProjectData($project) {
'currentStep' => $project->currentStep()->value(),
'status' => $project->status(),
'logo' => $project->client()->toPage() ? $project->client()->toPage()->logo()->toFile()->url() : '',
'steps' => $project->getSteps()
'steps' => $project->getSteps(),
"uuid" => (string) $project->uuid()
];
}

View file

@ -12,9 +12,10 @@
data-icon="comment"
>Commentaire</strong
>
<span class="notification__client | text-grey-700">{{
notification.location.project.title
}}</span>
<span class="notification__client | text-grey-700"
>{{ project.title }}
{{ project?.status === "unlisted" ? "(archivé)" : "" }}</span
>
<time
datetime=""
class="notification__date | text-grey-700 | ml-auto"
@ -39,8 +40,12 @@
<script setup>
import { useRouter } from "vue-router";
import { useNotificationsStore } from "../../stores/notifications";
import { useProjectsStore } from "../../stores/projects";
const router = useRouter();
const { notification } = defineProps({ notification: Object });
const { formatDate } = useNotificationsStore();
const { getProjectByUuid } = useProjectsStore();
const project = getProjectByUuid(notification.location.project.uuid);
</script>

View file

@ -17,5 +17,11 @@ export const useProjectsStore = defineStore("projects", () => {
.fetchData("projects")
.then((json) => (projects.value = json.page.children));
return { projects, currentProjects, archivedProjects };
// Functions
function getProjectByUuid(uuid) {
const project = projects.value.find((project) => project.uuid === uuid);
return project;
}
return { projects, currentProjects, archivedProjects, getProjectByUuid };
});