From 36861a79e38eb729dab2976967c565018abb0530 Mon Sep 17 00:00:00 2001 From: Ruslan Semak Date: Fri, 18 Apr 2025 18:36:14 +0300 Subject: [PATCH] feat: Added drag n drop --- client/components/admin/admin-pages.vue | 1 - server/models/pages.js | 32 +------------------------ 2 files changed, 1 insertion(+), 32 deletions(-) diff --git a/client/components/admin/admin-pages.vue b/client/components/admin/admin-pages.vue index 1c751938..61aaa1cd 100644 --- a/client/components/admin/admin-pages.vue +++ b/client/components/admin/admin-pages.vue @@ -99,7 +99,6 @@ .body-2: strong {{ props.item.title }} .caption {{ props.item.description }} td.admin-pages-path - v-chip(label, small, :color='$vuetify.theme.dark ? `grey darken-4` : `grey lighten-4`') {{ props.item.locale }} span.ml-2.grey--text(:class='$vuetify.theme.dark ? `text--lighten-1` : `text--darken-2`') / {{ props.item.path }} td {{ props.item.createdAt | moment('calendar') }} td {{ props.item.updatedAt | moment('calendar') }} diff --git a/server/models/pages.js b/server/models/pages.js index 36a47cfd..9f33709c 100644 --- a/server/models/pages.js +++ b/server/models/pages.js @@ -501,42 +501,12 @@ module.exports = class Page extends Model { // 2. Устанавливаем новый порядок // 3. Обновляем все страницы и проставляем новый приоритет (только если он изменился) // 4. rebuildTree() - - // -> Fetch original page - const page = await WIKI.models.pages.query().findById(opts.id) - if (!page) { - throw new Error('Invalid Page Id') - } - - // -> Check for page access - if (!WIKI.auth.checkAccess(opts.user, ['write:pages'], { - locale: page.localeCode, - path: page.path - })) { - throw new WIKI.Error.PageUpdateForbidden() - } - - page.orderPriority = opts.orderPriority - - // -> Original pages, sorted by orderPriority, without target (currently updating) page - const pages = await WIKI.models.pages.query() - .select('*') - .where('path', 'ilike', `${opts.group}%`) - .whereNot('id', page.id) - .orderBy('orderPriority', 'asc') - - const insertIndex = pages.findIndex((p) => p.orderPriority >= opts.orderPriority) - pages.splice(insertIndex, 0, page) - - const newPriorities = pages.map((p, idx) => ({id: p.id, orderPriority: idx + 1})) - for (const { id, orderPriority } of newPriorities) { + for (const { id, orderPriority } of opts.pages) { await WIKI.models.pages.query() .where('id', id) .patch({ orderPriority }) } await WIKI.models.pages.rebuildTree() - - return page } /**