2024-09-04 11:28:12 +02:00
|
|
|
<?php
|
2024-11-21 16:51:35 +01:00
|
|
|
function getProjectData($project) {
|
2025-01-23 17:39:40 +01:00
|
|
|
$data = [
|
2025-01-10 15:38:57 +01:00
|
|
|
"title" => $project->title()->value(),
|
|
|
|
|
"url" => $project->url(),
|
|
|
|
|
"uri" => "/" . $project->uri(),
|
|
|
|
|
"modified" => $project->modified("Y-MM-d"),
|
|
|
|
|
"currentStep" => $project->currentStep()->value(),
|
|
|
|
|
"status" => $project->status(),
|
|
|
|
|
"logo" => $project->client()->toPage() ? $project->client()->toPage()->logo()->toFile()->url() : "",
|
|
|
|
|
"steps" => $project->getSteps(),
|
|
|
|
|
"notifications" => Yaml::decode($project->notifications()->value),
|
2025-01-10 18:17:13 +01:00
|
|
|
"uuid" => (string) $project->uuid(),
|
|
|
|
|
"slug" => (string) $project->slug(),
|
2025-01-27 18:28:17 +01:00
|
|
|
"isDTLEnabled" => $project->isDTLEnabled()->value() == "true" ? true : false
|
2024-09-04 11:28:12 +02:00
|
|
|
];
|
2025-01-23 17:39:40 +01:00
|
|
|
|
|
|
|
|
if ($project->isDTLEnabled()) {
|
|
|
|
|
$data["designToLight"] = processDTLProposals($project);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return $data;
|
2024-11-21 16:51:35 +01:00
|
|
|
}
|
2024-09-04 11:28:12 +02:00
|
|
|
|
2024-11-21 16:51:35 +01:00
|
|
|
try {
|
2025-01-23 16:16:51 +01:00
|
|
|
$children = $kirby->user()->role() == "admin" ? $page->childrenAndDrafts()->map(fn($project) => getProjectData($project))->values() : $kirby->user()->projects()->toPages()->map(fn($project) => getProjectData($project))->values();
|
2024-11-21 16:51:35 +01:00
|
|
|
} catch (\Throwable $th) {
|
2025-01-10 15:38:57 +01:00
|
|
|
throw new Exception($th->getMessage() . " line " . $th->getLine(), 1);
|
2024-11-21 16:51:35 +01:00
|
|
|
$children = [];
|
|
|
|
|
}
|
2024-11-11 17:12:26 +01:00
|
|
|
|
2024-09-04 11:28:12 +02:00
|
|
|
$specificData = [
|
|
|
|
|
"children" => $children,
|
|
|
|
|
];
|
|
|
|
|
|
2024-10-28 15:33:52 +01:00
|
|
|
$pageData = array_merge($genericData, $specificData);
|
2024-09-04 11:28:12 +02:00
|
|
|
|
2024-10-28 15:33:52 +01:00
|
|
|
echo json_encode([
|
|
|
|
|
"page" => $pageData,
|
|
|
|
|
"user" => $userData
|
|
|
|
|
]);
|