\implode(
"\n",
\array_map(
fn ($entry) => \rosavox\helpers\render(
'docs-list-entry',
[
'link' => \rosavox\helpers\string_coin(
'?mode=edit&id={{id}}',
[
'id' => $entry['id'],
]
),
'text' => $entry['doc']['title'],
]
),
\rosavox\logic\docs_list()
)
),
'link_new' => '?mode=make',
]
)
);
break;
}
case 'make':
{
echo(
\rosavox\helpers\render(
'docs-edit',
[
'id' => '',
'title' => '',
'authors' => '',
'content' => '',
'reasoning' => '',
'link_back' => '?mode=list',
]
)
);
break;
}
case 'edit':
{
$doc = \rosavox\logic\docs_read($id);
echo(
\rosavox\helpers\render(
'docs-edit',
[
'id' => $id_encoded,
'title' => $doc['title'],
'authors' => \implode(', ', $doc['authors']),
'content' => $doc['content'],
'reasoning' => $doc['reasoning'],
'link_back' => '?mode=list',
]
)
);
break;
}
case 'save':
{
throw (new \Exception('not implemented yet'));
break;
}
default:
{
throw (new \Exception(\sprintf('invalid mode: %s', $mode)));
break;
}
}
?>