From: Christian Weiske Date: Sat, 23 Aug 2014 04:27:58 +0000 (+0200) Subject: allow listing all and untagged notes X-Git-Tag: v0.1.0 X-Git-Url: https://git.cweiske.de/grauphel.git/commitdiff_plain/f1db8976591ace3a1879ddd1217ed22bdca82dc2?hp=580f3321c7de3becc468673a3d9bf0e2a91717a7 allow listing all and untagged notes --- diff --git a/controller/guicontroller.php b/controller/guicontroller.php index b07ba45..1a4d023 100644 --- a/controller/guicontroller.php +++ b/controller/guicontroller.php @@ -83,7 +83,7 @@ class GuiController extends Controller $res = new TemplateResponse('grauphel', 'tag'); $res->setParams( array( - 'tag' => substr($rawtag, 16), + 'tag' => $this->getPrettyTagName($rawtag), 'rawtag' => $rawtag, 'notes' => $notes, ) @@ -108,11 +108,17 @@ class GuiController extends Controller $rawtags = $this->getNotes()->getTags(); sort($rawtags); + array_unshift( + $rawtags, + 'grauphel:special:all', 'grauphel:special:untagged' + ); + $tags = array(); foreach ($rawtags as $rawtag) { - if (substr($rawtag, 0, 16) == 'system:notebook:') { + $name = $this->getPrettyTagName($rawtag); + if ($name !== false) { $tags[] = array( - 'name' => substr($rawtag, 16), + 'name' => $name, 'id' => $rawtag, 'href' => $this->urlGen->linkToRoute( 'grauphel.gui.tag', array('rawtag' => $rawtag) @@ -168,5 +174,15 @@ class GuiController extends Controller $notes->setUsername($username); return $notes; } + + protected function getPrettyTagName($rawtag) + { + if (substr($rawtag, 0, 16) == 'system:notebook:') { + return substr($rawtag, 16); + } else if (substr($rawtag, 0, 17) == 'grauphel:special:') { + return '*' . substr($rawtag, 17) . '*'; + } + return false; + } } ?> diff --git a/lib/notestorage.php b/lib/notestorage.php index 3b51763..bca7dfd 100644 --- a/lib/notestorage.php +++ b/lib/notestorage.php @@ -285,7 +285,9 @@ class NoteStorage * Optionally only those changed after $since revision * * @param integer $since Revision number after which the notes changed - * @param string $rawtag Filter by tags + * @param string $rawtag Filter by tag. Special tags: + * - grauphel:special:all + * - grauphel:special:untagged * * @return array Array of short note objects */ @@ -299,7 +301,13 @@ class NoteStorage ); $notes = array(); - $jsRawtag = json_encode($rawtag); + if ($rawtag == 'grauphel:special:all') { + $rawtag = null; + } else if ($rawtag == 'grauphel:special:untagged') { + $jsRawtag = json_encode(array()); + } else { + $jsRawtag = json_encode($rawtag); + } while ($row = $result->fetchRow()) { if ($since !== null && $row['note_last_sync_revision'] <= $since) { continue;