fix: realtime updates on file grid view (#33930)

This commit is contained in:
V Shankar 2025-09-08 12:51:48 +05:30 committed by GitHub
parent ed9e486212
commit 93ebe2f19f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 27 additions and 6 deletions

View file

@ -1744,12 +1744,7 @@ frappe.views.ListView = class ListView extends frappe.views.BaseList {
// in the listview according to filters applied
// let's remove it manually
this.data = this.data.filter((d) => !names.includes(d.name));
for (let name of names) {
this.$result
.find(`.list-row-checkbox[data-name='${name.replace(/'/g, "\\'")}']`)
.closest(".list-row-container")
.remove();
}
this.remove_list_items(names);
return;
}
@ -1804,6 +1799,15 @@ frappe.views.ListView = class ListView extends frappe.views.BaseList {
return false;
}
remove_list_items(names) {
for (let name of names) {
this.$result
.find(`.list-row-checkbox[data-name='${name.replace(/'/g, "\\'")}']`)
.closest(".list-row-container")
.remove();
}
}
set_rows_as_checked() {
if (!this.$checks || !this.$checks.length) {
return;

View file

@ -170,7 +170,10 @@ frappe.views.FileView = class FileView extends frappe.views.ListView {
prepare_data(data) {
super.prepare_data(data);
this.prepare_file_data();
}
prepare_file_data() {
this.data = this.data.map((d) => this.prepare_datum(d));
// Bring folders to the top
@ -244,6 +247,7 @@ frappe.views.FileView = class FileView extends frappe.views.ListView {
render() {
this.$result.empty().removeClass("file-grid-view");
if (frappe.views.FileView.grid_view) {
this.prepare_file_data();
this.render_grid_view();
} else {
super.render();
@ -256,12 +260,25 @@ frappe.views.FileView = class FileView extends frappe.views.ListView {
render_list() {
if (frappe.views.FileView.grid_view) {
this.prepare_file_data();
this.render_grid_view();
} else {
super.render_list();
}
}
remove_list_items(names) {
if (frappe.views.FileView.grid_view) {
for (let name of names) {
this.$result
.find(`.file-wrapper[data-name='${name.replace(/'/g, "\\'")}']`)
.remove();
}
} else {
super.remove_list_items(names);
}
}
render_grid_view() {
const base_url = frappe.urllib.get_base_url();
let html = this.data