diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/notestorage.php | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/lib/notestorage.php b/lib/notestorage.php index f3a904d..d9ceaab 100644 --- a/lib/notestorage.php +++ b/lib/notestorage.php @@ -54,6 +54,17 @@ class NoteStorage public function getTags() { + $result = \OC_DB::executeAudited( + 'SELECT `note_tags` FROM `*PREFIX*grauphel_notes`' + . ' WHERE note_user = ?', + array($this->username) + ); + + $tags = array(); + while ($row = $result->fetchRow()) { + $tags = array_merge($tags, json_decode($row['note_tags'])); + } + return array_unique($tags); } /** @@ -273,24 +284,29 @@ class NoteStorage * Load notes for the given user in short form. * Optionally only those changed after $since revision * - * @param integer $since Revision number after which the notes changed + * @param integer $since Revision number after which the notes changed + * @param string $rawtag Filter by tags * * @return array Array of short note objects */ - public function loadNotesOverview($since = null) + public function loadNotesOverview($since = null, $rawtag = null) { $result = \OC_DB::executeAudited( - 'SELECT `note_guid`, `note_title`, `note_last_sync_revision`' + 'SELECT `note_guid`, `note_title`, `note_last_sync_revision`, `note_tags`' . ' FROM `*PREFIX*grauphel_notes`' . ' WHERE note_user = ?', array($this->username) ); $notes = array(); + $jsRawtag = json_encode($rawtag); while ($row = $result->fetchRow()) { if ($since !== null && $row['note_last_sync_revision'] <= $since) { continue; } + if ($rawtag !== null && strpos($row['note_tags'], $jsRawtag) === false) { + continue; + } $notes[] = array( 'guid' => $row['note_guid'], 'ref' => array( |
