瀏覽代碼

Add sort order field from Customize Form (#3284)

* Add sort order field from Customize Form

- fixes support issue WN-SUP25048

* Handle case when meta_sort_field is undefined
version-14
Faris Ansari 8 年之前
committed by Rushabh Mehta
父節點
當前提交
5c6483df97
共有 1 個文件被更改,包括 30 次插入13 次删除
  1. +30
    -13
      frappe/public/js/frappe/ui/sort_selector.js

+ 30
- 13
frappe/public/js/frappe/ui/sort_selector.js 查看文件

@@ -91,16 +91,12 @@ frappe.ui.SortSelector = Class.extend({
var me = this;
var meta = frappe.get_meta(this.doctype);

var { meta_sort_field, meta_sort_order } = this.get_meta_sort_field();

if(!this.args.sort_by) {
if(meta.sort_field) {
if(meta.sort_field.indexOf(',')!==-1) {
parts = meta.sort_field.split(',')[0].split(' ');
this.args.sort_by = parts[0];
this.args.sort_order = parts[1];
} else {
this.args.sort_by = meta.sort_field;
this.args.sort_order = meta.sort_order.toLowerCase();
}
if(meta_sort_field) {
this.args.sort_by = meta_sort_field;
this.args.sort_order = meta_sort_order;
} else {
// default
this.args.sort_by = 'modified';
@@ -115,7 +111,7 @@ frappe.ui.SortSelector = Class.extend({
if(!this.args.options) {
// default options
var _options = [
{'fieldname': 'modified'},
{'fieldname': 'modified'}
]

// title field
@@ -130,9 +126,15 @@ frappe.ui.SortSelector = Class.extend({
}
});

_options.push({'fieldname': 'name'});
_options.push({'fieldname': 'creation'});
_options.push({'fieldname': 'idx'});
// meta sort field
if(meta_sort_field) _options.push({ 'fieldname': meta_sort_field });
// more default options
_options.push(
{'fieldname': 'name'},
{'fieldname': 'creation'},
{'fieldname': 'idx'}
)

// de-duplicate
this.args.options = _options.uniqBy(function(obj) {
@@ -151,6 +153,21 @@ frappe.ui.SortSelector = Class.extend({
this.sort_by = this.args.sort_by;
this.sort_order = this.args.sort_order;
},
get_meta_sort_field: function() {
var meta = frappe.get_meta(this.doctype);
if(meta.sort_field && meta.sort_field.includes(',')) {
var parts = meta.sort_field.split(',')[0].split(' ');
return {
meta_sort_field: parts[0],
meta_sort_order: parts[1]
}
} else {
return {
meta_sort_field: meta.sort_field,
meta_sort_order: meta.sort_order.toLowerCase()
}
}
},
get_label: function(fieldname) {
if(fieldname==='idx') {
return __("Most Used");


Loading…
取消
儲存