diff --git a/frappe/public/js/frappe/form/controls/comment.js b/frappe/public/js/frappe/form/controls/comment.js index a64df56bca..0b73e2c703 100644 --- a/frappe/public/js/frappe/form/controls/comment.js +++ b/frappe/public/js/frappe/form/controls/comment.js @@ -6,12 +6,9 @@ Quill.register('modules/mention', Mention, true); frappe.ui.form.ControlComment = frappe.ui.form.ControlTextEditor.extend({ make_wrapper() { this.comment_wrapper = !this.no_wrapper ? $(` -
-
- ${__("Add a comment")} - +
+
+ ${__("Add a comment")}
@@ -19,6 +16,9 @@ frappe.ui.form.ControlComment = frappe.ui.form.ControlTextEditor.extend({ ${__("Ctrl+Enter to add comment")}
+
`) : $('
'); diff --git a/frappe/public/js/frappe/form/footer/footer.js b/frappe/public/js/frappe/form/footer/footer.js index 63757be08b..a6d2bb7d13 100644 --- a/frappe/public/js/frappe/form/footer/footer.js +++ b/frappe/public/js/frappe/form/footer/footer.js @@ -2,13 +2,15 @@ // MIT License. See license.txt import './timeline.js'; +import './new_timeline.js'; frappe.ui.form.Footer = Class.extend({ init: function(opts) { var me = this; $.extend(this, opts); this.make(); - this.make_comments(); + this.make_comment_box(); + this.make_timeline(); // render-complete $(this.frm.wrapper).on("render_complete", function() { me.refresh(); @@ -20,17 +22,42 @@ frappe.ui.form.Footer = Class.extend({ .appendTo(this.parent); this.wrapper.find(".btn-save").click(function() { me.frm.save('Save', null, this); - }) - + }); }, - make_comments: function() { - this.frm.timeline = new frappe.ui.form.Timeline({ - parent: this.wrapper.find(".form-comments"), + make_comment_box: function() { + this.frm.comment_box = frappe.ui.form.make_control({ + parent: this.wrapper.find(".comment-box"), + render_input: true, + only_input: true, + mentions: this.get_names_for_mentions(), + df: { + fieldtype: 'Comment', + fieldname: 'comment' + }, + }); + }, + get_names_for_mentions() { + let names_for_mentions = Object.keys(frappe.boot.user_info) + .filter(user => { + return !["Administrator", "Guest"].includes(user) + && frappe.boot.user_info[user].allowed_in_mentions; + }) + .map(user => { + return { + id: frappe.boot.user_info[user].name, + value: frappe.boot.user_info[user].fullname, + }; + }); + return names_for_mentions; + }, + make_timeline() { + this.frm.timeline = new frappe.ui.form.NewTimeline({ + parent: this.wrapper.find(".timeline"), frm: this.frm }); }, refresh: function() { - if(this.frm.doc.__islocal) { + if (this.frm.doc.__islocal) { this.parent.addClass("hide"); } else { this.parent.removeClass("hide"); diff --git a/frappe/public/js/frappe/form/templates/form_footer.html b/frappe/public/js/frappe/form/templates/form_footer.html index 5319950108..968fbffc3b 100644 --- a/frappe/public/js/frappe/form/templates/form_footer.html +++ b/frappe/public/js/frappe/form/templates/form_footer.html @@ -1,6 +1,7 @@