fix(UX): mentions - prioritize invovled users
This commit is contained in:
parent
dd767bd687
commit
5a2b500100
2 changed files with 15 additions and 3 deletions
|
|
@ -195,7 +195,9 @@ frappe.ui.form.ControlTextEditor = class ControlTextEditor extends frappe.ui.for
|
|||
let values = await frappe.xcall(method, {
|
||||
search_term
|
||||
});
|
||||
renderList(values, search_term);
|
||||
|
||||
let sorted_values = me.prioritize_involved_users_in_mention(values);
|
||||
renderList(sorted_values, search_term);
|
||||
}, 300),
|
||||
renderItem(item) {
|
||||
let value = item.value;
|
||||
|
|
@ -204,6 +206,16 @@ frappe.ui.form.ControlTextEditor = class ControlTextEditor extends frappe.ui.for
|
|||
};
|
||||
}
|
||||
|
||||
prioritize_involved_users_in_mention(values) {
|
||||
const involved_users = this.frm?.get_involved_users() // input on form
|
||||
|| cur_frm?.get_involved_users() // comment box / dialog on active form
|
||||
|| [];
|
||||
|
||||
return values
|
||||
.filter(val => involved_users.includes(val.id))
|
||||
.concat(values.filter(val => !involved_users.includes(val.id)));
|
||||
}
|
||||
|
||||
get_toolbar_options() {
|
||||
return [
|
||||
[{ header: [1, 2, 3, false] }],
|
||||
|
|
|
|||
|
|
@ -1875,11 +1875,11 @@ frappe.ui.form.Form = class FrappeForm {
|
|||
}
|
||||
|
||||
get_involved_users() {
|
||||
const user_fields = this.meta.fields
|
||||
let user_fields = this.meta.fields
|
||||
.filter(d => d.fieldtype === 'Link' && d.options === 'User')
|
||||
.map(d => d.fieldname);
|
||||
|
||||
user_fields.push('owner');
|
||||
user_fields = [...user_fields, "owner", "modified_by"];
|
||||
let involved_users = user_fields.map(field => this.doc[field]);
|
||||
|
||||
const docinfo = this.get_docinfo();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue