aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--controller/guicontroller.php22
-rw-r--r--lib/notestorage.php12
2 files changed, 29 insertions, 5 deletions
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;