diff --git a/frappe/public/js/frappe/list/list_renderer.js b/frappe/public/js/frappe/list/list_renderer.js
index 0030c8a3b9..14719909c1 100644
--- a/frappe/public/js/frappe/list/list_renderer.js
+++ b/frappe/public/js/frappe/list/list_renderer.js
@@ -300,11 +300,18 @@ frappe.views.ListRenderer = Class.extend({
render_view: function (values) {
var me = this;
- values.map(function (value) {
- var row = $('
')
- .data("data", me.meta)
- .appendTo(me.wrapper).get(0);
- me.render_item(row, value);
+ var $list_items = $(`
+
+
+ `);
+ me.wrapper.append($list_items);
+
+ values.map(value => {
+ const $item = $(this.get_item_html(value));
+ const $item_container = $('
').append($item);
+
+ $list_items.append($item_container);
+ this.render_tags($item_container, value);
});
this.setup_filterable();
@@ -325,16 +332,31 @@ frappe.views.ListRenderer = Class.extend({
// returns html for a data item,
// usually based on a template
get_item_html: function (data) {
- var main = frappe.render_template('list_item_main', {
- data: data,
- columns: this.columns,
- formatters: this.settings.formatters,
- subject: this.get_subject_html(data, true),
- indicator: this.get_indicator_html(data),
- right_column: this.settings.right_column
- });
-
- return frappe.render_template('list_item_row', {
+ // var main = frappe.render_template('list_item_main_1', {
+ // data: data,
+ // columns: this.columns,
+ // formatters: this.settings.formatters,
+ // subject: this.get_subject_html(data, true),
+ // indicator: this.get_indicator_html(data),
+ // right_column: this.settings.right_column
+ // });
+
+ // Max 4 columns to be rendered (including subject)
+ const columns = this.columns.slice(0, 4);
+
+ var main = columns.map(column =>
+ frappe.render_template('list_item_main_1', {
+ data: data,
+ col: column,
+ value: data[column.fieldname],
+ formatters: this.settings.formatters,
+ subject: this.get_subject_html(data, true),
+ indicator: this.get_indicator_html(data),
+ right_column: this.settings.right_column
+ })
+ ).join("");
+
+ return frappe.render_template('list_item_row_1', {
data: data,
main: main,
settings: this.settings,
@@ -345,12 +367,24 @@ frappe.views.ListRenderer = Class.extend({
},
get_header_html: function () {
- var main = frappe.render_template('list_item_main_head', {
- columns: this.columns,
- right_column: this.settings.right_column,
- _checkbox: ((frappe.model.can_delete(this.doctype) || this.settings.selectable)
- && !this.no_delete)
- });
+
+ const columns = this.columns.slice(0, 4);
+
+ var main = columns.map(column =>
+ frappe.render_template('list_item_main_head', {
+ col: column,
+ right_column: this.settings.right_column,
+ _checkbox: ((frappe.model.can_delete(this.doctype) || this.settings.selectable)
+ && !this.no_delete)
+ })
+ ).join("");
+
+ // var main = frappe.render_template('list_item_main_head', {
+ // columns: this.columns,
+ // right_column: this.settings.right_column,
+ // _checkbox: ((frappe.model.can_delete(this.doctype) || this.settings.selectable)
+ // && !this.no_delete)
+ // });
return frappe.render_template('list_item_row_head', { main: main, list: this });
},
diff --git a/frappe/public/less/list.less b/frappe/public/less/list.less
index 2131b718c9..4826b8c2bd 100644
--- a/frappe/public/less/list.less
+++ b/frappe/public/less/list.less
@@ -189,15 +189,15 @@
.filterable {
cursor: pointer;
- display: inline-block;
- text-overflow: ellipsis;
+ // display: inline-block;
+ // text-overflow: ellipsis;
}
.col-sm-2:not(.list-row-right) .filterable,
.col-sm-3:not(.list-row-right) .filterable {
- max-width: 145px;
- overflow: hidden;
- width: 100%;
+ // max-width: 145px;
+ // overflow: hidden;
+ // width: 100%;
}
@@ -477,4 +477,57 @@
.inbox-value {
padding-top: 2px;
+}
+
+// new refactor
+
+.list-items {
+ width: 100%;
+ font-size: @text-medium;
+}
+
+.list-item-container {
+ border-bottom: 1px solid @border-color;
+
+ &:last-child {
+ border-bottom: none;
+ }
+}
+
+.list-item {
+ display: flex;
+ align-items: center;
+
+ height: 40px;
+ padding-left: 15px;
+
+
+ &__head {
+ background-color: @panel-bg;
+ border-bottom: 1px solid @border-color;
+ }
+
+ input[type=checkbox] {
+ margin: 0;
+ }
+
+ .liked-by, .liked-by-filter-button {
+ display: inline-block;
+ width: 20px;
+ margin-left: 5px;
+ margin-right: 10px;
+ }
+}
+
+.list-item--content {
+ flex: 1;
+ margin-right: 15px;
+
+ &__flex-2 {
+ flex: 2;
+ }
+
+ &:last-child {
+ margin-right: 5px;
+ }
}
\ No newline at end of file