103 lines
1.8 KiB
PHP
103 lines
1.8 KiB
PHP
|
<?php
|
||
|
require_once(__DIR__ . '/helpers.php');
|
||
|
require_once(__DIR__ . '/logic.php');
|
||
|
|
||
|
|
||
|
/**
|
||
|
* @todo deactivate
|
||
|
*/
|
||
|
\rosavox\logic\docs_add_examples();
|
||
|
$mode = ($_GET['mode'] ?? 'list');
|
||
|
$id_encoded = ($_GET['id'] ?? null);
|
||
|
$id = (($id_encoded === null) ? null : \rosavox\logic\docs_id_decode($id_encoded));
|
||
|
?>
|
||
|
<!DOCTYPE html>
|
||
|
<html>
|
||
|
<head>
|
||
|
<meta charset="utf-8"/>
|
||
|
<link rel="stylesheet" type="text/css" href="/style.css"/>
|
||
|
</head>
|
||
|
<body>
|
||
|
<?php
|
||
|
switch ($mode)
|
||
|
{
|
||
|
case 'list':
|
||
|
{
|
||
|
echo(
|
||
|
\rosavox\helpers\render(
|
||
|
'docs-list',
|
||
|
[
|
||
|
'entries' => \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;
|
||
|
}
|
||
|
}
|
||
|
?>
|
||
|
</body>
|
||
|
</html>
|