$res = new TemplateResponse('grauphel', 'tag');
$res->setParams(
array(
- 'tag' => substr($rawtag, 16),
+ 'tag' => $this->getPrettyTagName($rawtag),
'rawtag' => $rawtag,
'notes' => $notes,
)
$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)
$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;
+ }
}
?>
* 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
*/
);
$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;