X-Git-Url: https://git.cweiske.de/grauphel.git/blobdiff_plain/cd37bde4ef0747a11c1221e937027fe17f2894fe..580f3321c7de3becc468673a3d9bf0e2a91717a7:/lib/notestorage.php diff --git a/lib/notestorage.php b/lib/notestorage.php index f3a904d..3b51763 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); } /** @@ -127,8 +138,8 @@ class NoteStorage )->fetchRow(); if ($row === false) { - $syncdata = $this->getNewSyncData($this->username); - $this->saveSyncData($this->username, $syncdata); + $syncdata = $this->getNewSyncData(); + $this->saveSyncData($syncdata); } else { $syncdata = new SyncData(); $syncdata->latestSyncRevision = (int) $row['syncdata_latest_sync_revision']; @@ -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(