From a548aa7e7509e704db6a0b96a5e3b8ba177a795b Mon Sep 17 00:00:00 2001 From: mildred Date: Tue, 21 May 2019 11:46:05 +0100 Subject: [PATCH] feat: add bookmark --- frontend/src/api/context.js | 5 +++ frontend/src/api/files.js | 14 ++++++- frontend/src/api/index.js | 4 +- frontend/src/components/Header.vue | 8 +++- frontend/src/components/Sidebar.vue | 23 +++++++++-- frontend/src/components/buttons/Bookmark.vue | 43 ++++++++++++++++++++ frontend/src/i18n/en.json | 3 +- frontend/src/store/getters.js | 3 +- frontend/src/store/index.js | 1 + frontend/src/store/mutations.js | 8 ++++ frontend/src/views/Layout.vue | 9 ++++ 11 files changed, 112 insertions(+), 9 deletions(-) create mode 100644 frontend/src/api/context.js create mode 100644 frontend/src/components/buttons/Bookmark.vue diff --git a/frontend/src/api/context.js b/frontend/src/api/context.js new file mode 100644 index 00000000..c9ed358c --- /dev/null +++ b/frontend/src/api/context.js @@ -0,0 +1,5 @@ +import { fetchJSON } from './utils' + +export async function get () { + return await fetchJSON(`/api/context`, {}) +} diff --git a/frontend/src/api/files.js b/frontend/src/api/files.js index 602090c1..cbd4804b 100644 --- a/frontend/src/api/files.js +++ b/frontend/src/api/files.js @@ -112,10 +112,22 @@ export async function post (url, content = '', overwrite = false, onupload) { } request.send(content) - // Upload is done no more message before closing the tab + // Upload is done no more message before closing the tab }).finally(() => { window.onbeforeunload = null }) } +export function bookmark (items) { + let promises = [] + + for (let item of items) { + const path = removePrefix(item.path) + const url = `${path}?action=${item.bookmarked ? 'bookmark' : 'remove-bookmark'}` + promises.push(resourceAction(url, 'PATCH')) + } + + return Promise.all(promises) +} + function moveCopy (items, copy = false) { let promises = [] diff --git a/frontend/src/api/index.js b/frontend/src/api/index.js index 11bb49d9..789204df 100644 --- a/frontend/src/api/index.js +++ b/frontend/src/api/index.js @@ -2,6 +2,7 @@ import * as files from './files' import * as share from './share' import * as users from './users' import * as settings from './settings' +import * as context from './context' import search from './search' import commands from './commands' @@ -11,5 +12,6 @@ export { users, settings, commands, - search + search, + context } diff --git a/frontend/src/components/Header.vue b/frontend/src/components/Header.vue index 0cfc4cbe..48f00201 100644 --- a/frontend/src/components/Header.vue +++ b/frontend/src/components/Header.vue @@ -45,6 +45,7 @@ +