fix(form-nav): Get filters from list_view (#9124)
* fix(form-nav): Get filters from list_view - Fallback to user_settings - Fix UI Test * style: Missing semicolon
This commit is contained in:
parent
be1e41169d
commit
dcdf95a95f
4 changed files with 30 additions and 9 deletions
|
|
@ -1,6 +1,5 @@
|
|||
context('Form', () => {
|
||||
before(() => {
|
||||
Cypress.config('defaultCommandTimeout', 100000);
|
||||
cy.login();
|
||||
cy.visit('/desk');
|
||||
cy.window().its('frappe').then(frappe => {
|
||||
|
|
@ -27,14 +26,17 @@ context('Form', () => {
|
|||
cy.get('.filter-field .input-with-feedback.form-control').type('123', { force: true });
|
||||
cy.get('.filter-box .btn:contains("Apply")').click({ force: true });
|
||||
cy.visit('/desk#Form/Contact/Test Form Contact 3');
|
||||
cy.get('.prev-doc').click();
|
||||
cy.get('.prev-doc').should('be.visible').click();
|
||||
cy.get('.msgprint-dialog .modal-body').contains('No further records').should('be.visible');
|
||||
cy.get('.btn-modal-close:visible').click();
|
||||
cy.get('.next-doc').click();
|
||||
cy.wait(200);
|
||||
cy.contains('Test Form Contact 2').should('not.exist');
|
||||
cy.get('.page-title .title-text').should('contain', 'Test Form Contact 1');
|
||||
cy.visit('/desk#List/Contact');
|
||||
cy.get('.clear-filters.btn').click();
|
||||
// clear filters
|
||||
cy.window().its('frappe').then((frappe) => {
|
||||
let list_view = frappe.get_list_view('Contact');
|
||||
list_view.filter_area.filter_list.clear_filters();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ def update_comment(name, content):
|
|||
doc.save(ignore_permissions=True)
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_next(doctype, value, prev, filters, sort_order, sort_field):
|
||||
def get_next(doctype, value, prev, filters=None, sort_order='desc', sort_field='modified'):
|
||||
|
||||
prev = int(prev)
|
||||
if not filters: filters = []
|
||||
|
|
|
|||
|
|
@ -858,13 +858,27 @@ frappe.ui.form.Form = class FrappeForm {
|
|||
}
|
||||
|
||||
navigate_records(prev) {
|
||||
let list_settings = frappe.get_user_settings(this.doctype)['List'];
|
||||
let filters, sort_field, sort_order;
|
||||
let list_view = frappe.get_list_view(this.doctype);
|
||||
if (list_view) {
|
||||
filters = list_view.get_filters_for_args();
|
||||
sort_field = list_view.sort_field;
|
||||
sort_order = list_view.sort_order;
|
||||
} else {
|
||||
let list_settings = frappe.get_user_settings(this.doctype)['List'];
|
||||
if (list_settings) {
|
||||
filters = list_settings.filters;
|
||||
sort_field = list_settings.sort_field;
|
||||
sort_order = list_settings.sort_order;
|
||||
}
|
||||
}
|
||||
|
||||
let args = {
|
||||
doctype: this.doctype,
|
||||
value: this.docname,
|
||||
filters: list_settings.filters,
|
||||
sort_order: list_settings.sort_order,
|
||||
sort_field: list_settings.sort_by,
|
||||
filters,
|
||||
sort_order,
|
||||
sort_field,
|
||||
prev,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1538,3 +1538,8 @@ frappe.views.ListView = class ListView extends frappe.views.BaseList {
|
|||
$(document).on('save', (event, doc) => {
|
||||
frappe.views.ListView.trigger_list_update(doc);
|
||||
});
|
||||
|
||||
frappe.get_list_view = (doctype) => {
|
||||
let route = `List/${doctype}/List`;
|
||||
return frappe.views.list_view[route];
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue