90 lines
1.3 KiB
PHP
90 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace rosavox;
|
|
|
|
require_once('entities/doc.php');
|
|
require_once('services/doc.php');
|
|
require_once('nav.php');
|
|
require_once('renderings.php');
|
|
|
|
|
|
/**
|
|
*/
|
|
function main(array $get, array $post) : void
|
|
{
|
|
// init
|
|
\rosavox\services\doc\init();
|
|
|
|
// args
|
|
$mode = (
|
|
$get['mode']
|
|
??
|
|
'list'
|
|
);
|
|
$id = (
|
|
(! empty($get['id']))
|
|
?
|
|
\intval($get['id'])
|
|
:
|
|
null
|
|
);
|
|
|
|
// exec
|
|
switch ($mode)
|
|
{
|
|
case 'delete':
|
|
{
|
|
if ($id === null)
|
|
{
|
|
// do nothing
|
|
}
|
|
else
|
|
{
|
|
\rosavox\services\doc\remove($id);
|
|
}
|
|
nav('list', []);
|
|
break;
|
|
}
|
|
case 'save':
|
|
{
|
|
$doc = new \rosavox\entities\doc\entity(
|
|
$post['title'],
|
|
\explode(',', $post['authors']),
|
|
$post['content'],
|
|
(empty($post['reasoning']) ? null : $post['reasoning'])
|
|
);
|
|
if ($id === null)
|
|
{
|
|
$id = \rosavox\services\doc\add($doc);
|
|
}
|
|
else
|
|
{
|
|
\rosavox\services\doc\change($id, $doc);
|
|
}
|
|
// \rosavox\nav('edit', ['id' => \strval($id)]);
|
|
\rosavox\nav('list', []);
|
|
break;
|
|
}
|
|
case 'list':
|
|
{
|
|
echo(\rosavox\renderings\doc_list());
|
|
break;
|
|
}
|
|
case 'make':
|
|
{
|
|
echo(\rosavox\renderings\doc_edit(null));
|
|
break;
|
|
}
|
|
case 'edit':
|
|
{
|
|
echo(\rosavox\renderings\doc_edit($id));
|
|
break;
|
|
}
|
|
default:
|
|
{
|
|
throw (new \Exception(\sprintf('invalid mode: %s', $mode)));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
?>
|