Skip to content

Commit 78804b1

Browse files
fix: Do not update last modified while bulk updating folder of pages
1 parent 9d24207 commit 78804b1

File tree

2 files changed

+29
-20
lines changed

2 files changed

+29
-20
lines changed

builder/api.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,3 +215,11 @@ def get_apps():
215215
app_list += filter(lambda app: app.get("name") != "builder", apps)
216216

217217
return app_list
218+
219+
220+
@frappe.whitelist()
221+
def update_page_folder(pages: list[str], folder_name: str) -> None:
222+
if not frappe.has_permission("Builder Page", ptype="write"):
223+
frappe.throw("You do not have permission to update page folder.")
224+
for page in pages:
225+
frappe.db.set_value("Builder Page", page, "project_folder", folder_name, update_modified=False)

frontend/src/pages/PageBuilderDashboard.vue

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ import useStore from "@/store";
226226
import { posthog } from "@/telemetry";
227227
import { BuilderPage } from "@/types/Builder/BuilderPage";
228228
import { useDark, useEventListener, useStorage, useToggle, watchDebounced } from "@vueuse/core";
229-
import { Dropdown } from "frappe-ui";
229+
import { createResource, Dropdown } from "frappe-ui";
230230
import { onActivated, Ref, ref, watch } from "vue";
231231
232232
const isDark = useDark({
@@ -365,25 +365,26 @@ watchDebounced([searchFilter, typeFilter, orderBy], fetchPages, {
365365
});
366366
367367
const setFolder = async (folder: string) => {
368-
for (const pageName of selectedPages.value) {
369-
if (pageName) {
370-
await webPages.setValue
371-
.submit({
372-
name: pageName,
373-
project_folder: folder,
374-
})
375-
.then(() => {
376-
const page = webPages.data?.find((p: BuilderPage) => p.name === pageName);
377-
if (page) {
378-
page.project_folder = folder;
379-
}
380-
});
381-
}
382-
}
383-
selectedPages.value.clear();
384-
selectionMode.value = false;
385-
showFolderSelectorDialog.value = false;
386-
store.activeFolder = folder;
368+
createResource({
369+
method: "POST",
370+
url: "builder.api.update_page_folder",
371+
})
372+
.submit({
373+
pages: Array.from(selectedPages.value),
374+
folder_name: folder,
375+
})
376+
.then(() => {
377+
for (const pageName of selectedPages.value) {
378+
const page = webPages.data?.find((p: BuilderPage) => p.name === pageName);
379+
if (page) {
380+
page.project_folder = folder;
381+
}
382+
}
383+
selectedPages.value.clear();
384+
selectionMode.value = false;
385+
showFolderSelectorDialog.value = false;
386+
store.activeFolder = folder;
387+
});
387388
};
388389
389390
const showSettingsDialog = ref(false);

0 commit comments

Comments
 (0)