get("invalid parameters", false)); } $note = Note::loadNote($VARS['noteid']); if (!$note->hasWriteAccess(new User($_SESSION['uid']))) { die($Strings->get("invalid parameters", false)); } $note->setText($VARS['content']); $note->setColor($VARS['color']); $note->setModified(date("Y-m-d H:i:s")); $note->saveNote(); if (isset($VARS['reload'])) { returnToSender("", "¬e=" . $note->getID()); } else { http_response_code(204); } break; case "deletenote": if (empty($VARS['noteid'])) { die($Strings->get("invalid parameters")); } $note = Note::loadNote($VARS['noteid']); if (!$note->hasWriteAccess(new User($_SESSION['uid']))) { die($Strings->get("invalid parameters")); } $note->deleteNote(); returnToSender("note_deleted"); break; case "downloadnote": if (empty($VARS['noteid'])) { die($Strings->get("invalid parameters", false)); } $note = Note::loadNote($VARS['noteid']); if (!$note->hasReadAccess(new User($_SESSION['uid']))) { die($Strings->get("invalid parameters", false)); } if (empty($VARS['type'])) { $VARS['type'] = "markdown"; } switch ($VARS['type']) { case "html": header("Content-Type: text/html; charset=UTF-8"); header("Content-disposition: attachment; filename=\"" . $note->getTitle() . "_" . $note->getModified() . ".html\""); echo $note->getHTML(false); break; case "odt": if ($SETTINGS['pandoc'] != "") { header("Content-Type: application/vnd.oasis.opendocument.text"); header("Content-disposition: attachment; filename=\"" . $note->getTitle() . "_" . $note->getModified() . ".odt\""); $pandoc = new Pandoc\Pandoc(); echo $pandoc->convert($note->getText(), "markdown_github", "odt"); break; } default: header("Content-Type: text/markdown; charset=UTF-8"); header("Content-disposition: attachment; filename=\"" . $note->getTitle() . "_" . $note->getModified() . ".md\""); echo $note->getText(); } break; case "favoritenote": if (empty($VARS['noteid'])) { die($Strings->get("invalid parameters")); } $note = Note::loadNote($VARS['noteid']); if (!$note->hasWriteAccess(new User($_SESSION['uid']))) { die($Strings->get("invalid parameters")); } $note->setFavorite(!$note->getFavorite()); $note->saveNote(); returnToSender(""); break; case "getnotes": header("Content-Type: application/json"); $noteids = $database->select('notes', 'noteid', ['ownerid' => $_SESSION['uid']]); $notes = []; foreach ($noteids as $n) { $notes[] = Note::loadNote($n)->toArray(); } exit(json_encode($notes)); case "setcolor": if (empty($VARS['noteid'])) { die($Strings->get("invalid parameters")); } $note = Note::loadNote($VARS['noteid']); if (!$note->hasWriteAccess(new User($_SESSION['uid']))) { die($Strings->get("invalid parameters")); } $note->setColor($VARS['color']); $note->setModified(date("Y-m-d H:i:s")); $note->saveNote(); returnToSender(""); break; case "maketodolist": if (empty($VARS['noteid'])) { die($Strings->get("invalid parameters")); } $note = Note::loadNote($VARS['noteid']); if (!$note->hasWriteAccess(new User($_SESSION['uid']))) { die($Strings->get("invalid parameters")); } $note->toChecklist(); $note->setModified(date("Y-m-d H:i:s")); $note->saveNote(); returnToSender(""); break; case "togglecheckitem": if (empty($VARS['noteid'])) { die($Strings->get("invalid parameters")); } $note = Note::loadNote($VARS['noteid']); if (!$note->hasWriteAccess(new User($_SESSION['uid']))) { die($Strings->get("invalid parameters")); } if (!empty($VARS['text'])) { $note->toggleChecklistItem($VARS['text']); $note->setModified(date("Y-m-d H:i:s")); $note->saveNote(); } if (isset($VARS['reload'])) { returnToSender(""); } else { http_response_code(204); } break; }