From c70c87a20d26cf4a382c45ddba7383f0c2a51e4b Mon Sep 17 00:00:00 2001 From: Matias De lellis Date: Thu, 4 Jun 2020 13:39:58 -0300 Subject: [PATCH] Inital backend support to pinned notes --- appinfo/info.xml | 2 +- js/script.js | 53 +++++++++---- js/templates/notes.handlebars | 6 +- lib/Controller/NoteController.php | 13 +++- lib/Db/Note.php | 8 ++ lib/Db/NoteMapper.php | 46 ++++++----- .../Version000205Date20200604122312.php | 35 +++++++++ lib/Service/NotFoundException.php | 4 - lib/Service/NoteService.php | 77 ------------------- lib/Service/ServiceException.php | 6 -- 10 files changed, 126 insertions(+), 124 deletions(-) create mode 100644 lib/Migration/Version000205Date20200604122312.php delete mode 100644 lib/Service/NotFoundException.php delete mode 100644 lib/Service/NoteService.php delete mode 100644 lib/Service/ServiceException.php diff --git a/appinfo/info.xml b/appinfo/info.xml index 7e6cba2..b33af1c 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -5,7 +5,7 @@ Quick notes Quick notes with a basic rich text Quick notes with a basic rich text - 0.2.4 + 0.2.5 agpl Matias De lellis QuickNotes diff --git a/js/script.js b/js/script.js index 58ee9cc..44ca3eb 100644 --- a/js/script.js +++ b/js/script.js @@ -137,10 +137,11 @@ Notes.prototype = { isLoaded: function () { return this._loaded; }, - updateActive: function (title, content, tags, color) { + updateActive: function (title, content, pinned, tags, color) { var note = this.getActive(); note.title = title; note.content = content; + note.pinned = pinned; note.tags = tags; note.color = color; @@ -151,9 +152,14 @@ Notes.prototype = { data: JSON.stringify(note) }); }, - updateId: function (id, title, content, tags, color) { + updateId: function (id, title, content, pinned, tags, color) { this.load(id); - return this.updateActive(title, content, tags, color); + return this.updateActive(title, content, pinned, tags, color); + }, + setPinnedNote: function (id, pinned) { + this.load(id); + var note = this.getActive(); + return this.updateActive(note.title, note.content, pinned, note.tags, note.color); } }; @@ -344,7 +350,7 @@ View.prototype = { */ var self = this; - this._notes.updateId(id, title, content, tags, color).done(function () { + this._notes.updateId(id, title, content, false, tags, color).done(function () { var modal = $('#modal-note-div'); var modalnote = $("#modal-note-div .quicknote"); var modaltitle = $('#modal-note-div #title-editable'); @@ -581,25 +587,40 @@ View.prototype = { $('#app-content').on("click", ".icon-pin", function (event) { event.stopPropagation(); - $(this).removeClass("hide-header-icon"); - $(this).addClass("fixed-header-icon"); - $(this).removeClass("icon-pin"); - $(this).addClass("icon-pinned"); - $(this).attr('title', t('quicknotes', 'Unpin note')); - $('.notes-grid').isotope('updateSortData').isotope(); + var icon = $(this); + var note = icon.parent().parent(); + var id = parseInt(note.data('id'), 10); + + self._notes.setPinnedNote(id, true).done(function () { + icon.removeClass("hide-header-icon"); + icon.addClass("fixed-header-icon"); + icon.removeClass("icon-pin"); + icon.addClass("icon-pinned"); + icon.attr('title', t('quicknotes', 'Unpin note')); + $('.notes-grid').isotope('updateSortData').isotope(); + }).fail(function () { + alert('Could not pin note'); + }); }); $('#app-content').on("click", ".icon-pinned", function (event) { event.stopPropagation(); - $(this).removeClass("fixed-header-icon"); - $(this).addClass("hide-header-icon"); - $(this).removeClass("icon-pinned"); - $(this).addClass("icon-pin"); - $(this).attr('title', t('quicknotes', 'Pin note')); + var icon = $(this); + var note = icon.parent().parent(); + var id = parseInt(note.data('id'), 10); - $('.notes-grid').isotope('updateSortData').isotope(); + self._notes.setPinnedNote(id, false).done(function () { + icon.removeClass("fixed-header-icon"); + icon.addClass("hide-header-icon"); + icon.removeClass("icon-pinned"); + icon.addClass("icon-pin"); + icon.attr('title', t('quicknotes', 'Pin note')); + $('.notes-grid').isotope('updateSortData').isotope(); + }).fail(function () { + alert('Could not unpin'); + }); }); /* diff --git a/js/templates/notes.handlebars b/js/templates/notes.handlebars index 4ebdb04..a810bba 100644 --- a/js/templates/notes.handlebars +++ b/js/templates/notes.handlebars @@ -15,7 +15,11 @@ {{else}}
-
+ {{#if ispinned}} +
+ {{else}} +
+ {{/if}}