124 lines
3.5 KiB
PHP
124 lines
3.5 KiB
PHP
<?php
|
|
global $c;
|
|
|
|
UserAuth::requirePermission("admin");
|
|
|
|
$varUser = UserAuth::getUser();
|
|
$strId = Request::getArg(0);
|
|
$strPath = Request::getParam("to") ?? "";
|
|
$strContent = "";
|
|
|
|
if (strlen($strId) > 0)
|
|
{
|
|
$varRows = $c->query("SELECT * from posts where id = ?", $strId);
|
|
|
|
if (count($varRows) !== 1)
|
|
{
|
|
BootstrapRender::message("Zero or more than one row returned", "danger");
|
|
Respond::redirect("/post");
|
|
}
|
|
|
|
$varRow = $varRows[0];
|
|
$strPath = $varRow["path"];
|
|
$strContent = $varRow["content"];
|
|
}
|
|
|
|
|
|
if (Request::posts("path", "content"))
|
|
{
|
|
$strPath = Request::getPosted("path");
|
|
$strContent = Request::getPosted("content");
|
|
|
|
if ($strId == null || strlen($strId) < 1)
|
|
{
|
|
$c->query(
|
|
"INSERT into posts (email, path, content)
|
|
values (?, ?, ?)",
|
|
$varUser["email"],
|
|
$strPath,
|
|
$strContent);
|
|
|
|
$strId = $c->query("SELECT * from posts where rowid = last_insert_rowid()")[0]["id"];
|
|
}
|
|
|
|
if (strlen($strContent) < 1)
|
|
{
|
|
$c->query("DELETE from posts where id = ?", $strId);
|
|
BootstrapRender::message("Post deleted successfully.", "success");
|
|
Respond::redirect("/post");
|
|
}
|
|
|
|
$c->query(
|
|
"UPDATE posts
|
|
set
|
|
path = ?,
|
|
content = ?,
|
|
updated = current_timestamp
|
|
where
|
|
id = ?",
|
|
$strPath,
|
|
$strContent,
|
|
$strId);
|
|
|
|
Respond::redirect("/post/{$strId}");
|
|
}
|
|
?>
|
|
|
|
<style>
|
|
textarea {
|
|
font-family: monospace;
|
|
}
|
|
</style>
|
|
|
|
<form method="post">
|
|
<div class="navbar navbar-expand bg-body-tertiary d-flex px-3 sticky-top">
|
|
<div class="container justify-content-between">
|
|
<div class="navbar-nav d-inline-flex align-items-center">
|
|
<span class="navbar-brand">Post</span>
|
|
|
|
<input class="form-control me-2" type="text" name="path" placeholder="e.g. /home" value="<?= $strPath; ?>" />
|
|
|
|
<?php if ($strId == null || strlen($strId) < 1): ?>
|
|
<a class="btn btn-outline-primary text-nowrap" onclick="fnSave();"><i class="fa fa-fw fa-plus-circle"></i> Create</a>
|
|
<?php else: ?>
|
|
<a class="btn btn-outline-success text-nowrap" onclick="fnSave();"><i class="fa fa-fw fa-save"></i> Save</a>
|
|
<?php endif; ?>
|
|
</div>
|
|
|
|
<div class="navbar-nav d-inline-flex">
|
|
<?php BootstrapRender::message(); ?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<?php /**/ ?>
|
|
<div class="container my-5">
|
|
<div class="row">
|
|
<textarea
|
|
class="form-control border-0 shadow-none"
|
|
name="content"
|
|
placeholder="Enter content here..."
|
|
oninput="fnResize(this);"
|
|
autocomplete="off"
|
|
autocorrect="off"
|
|
autocapitalize="off"
|
|
spellcheck="false"><?= $strContent; ?></textarea>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
|
|
<script>
|
|
$(function() {
|
|
fnSave = function() {
|
|
$("form").first().submit();
|
|
};
|
|
|
|
fnResize = function(x) {
|
|
x.style.height = "auto";
|
|
x.style.height = x.scrollHeight + "px";
|
|
};
|
|
|
|
fnResize($("textarea").first()[0]);
|
|
});
|
|
</script>
|