2
0
mirror of https://github.com/frappe/books.git synced 2024-12-24 11:55:46 +00:00
books/docs/client/lists.md
2018-02-08 17:58:51 +05:30

1.1 KiB

Lists

A list object handles object listing and paging, for a standard model.

Example

const Page = require('frappejs/frappe/client/view/page');
const List = require('frappejs/frappe/client/view/list');

// create a new page
let todo_list = new Page('ToDo List');

// init a new list
todo_list.list = new List({
	doctype: 'ToDo',
	parent: this.todo_list.body
});

todo_list.on('show', () => {
	// refresh on show
	todo_list.list.run();
})

Creating a new List

You can create a new list object by passing the DocType and the parent element of the list

Refreshing

To reload the list, call the run method

Extending

Lists can be extended by defining a client module for the doctype, similar to forms

const BaseList = require('frappejs/client/view/list');

class ToDoList extends BaseList {
    getFields()  {
        return ['name', 'subject', 'status'];
    }
    getRowHTML(data) {
        let symbol = data.status=="Closed" ? "✔" : "";
        return `<a href="#edit/todo/${data.name}">${symbol} ${data.subject}</a>`;
    }
}

module.exports = {
    List: ToDoList
}