From 1df3e04cd7dab4231ab423cf8af81b949f1ed817 Mon Sep 17 00:00:00 2001 From: Aastha Gupta Date: Mon, 11 Dec 2017 16:23:25 +0530 Subject: [PATCH] bot settings: Clear typeahead when renaming a bot Fixes #7534 When bot is renamed, the old name persists in mention typehead. This commit clears the typeahead, whenever bot details are modified. --- frontend_tests/node_tests/typeahead_helper.js | 26 +++++++++++++++++++ static/js/settings_bots.js | 1 + static/js/typeahead_helper.js | 4 +++ 3 files changed, 31 insertions(+) diff --git a/frontend_tests/node_tests/typeahead_helper.js b/frontend_tests/node_tests/typeahead_helper.js index cc46df8173..af40fb788f 100644 --- a/frontend_tests/node_tests/typeahead_helper.js +++ b/frontend_tests/node_tests/typeahead_helper.js @@ -399,6 +399,32 @@ _.each(matches, function (person) { assert(rendered); }()); +(function test_clear_rendered_persons() { + var rendered = false; + global.templates.render = function (template_name, args) { + assert.equal(template_name, 'typeahead_list_item'); + assert.equal(args.primary, matches[5].full_name); + assert.equal(args.secondary, matches[5].email); + rendered = true; + return 'typeahead-item-stub'; + }; + assert.equal(th.render_person(matches[5]), 'typeahead-item-stub'); + assert(rendered); + + // Bot once rendered won't be rendered again until clear_rendered_person + // function is called. clear_rendered_person is used to clear rendered + // data once bot name is modified. + rendered = false; + assert.equal(th.render_person(matches[5]), 'typeahead-item-stub'); + assert.equal(rendered, false); + + // Here rendered will be true as it is being rendered again. + th.clear_rendered_persons(); + assert.equal(th.render_person(matches[5]), 'typeahead-item-stub'); + assert(rendered); + +}()); + (function test_render_stream() { // Test render_stream with short description var rendered = false; diff --git a/static/js/settings_bots.js b/static/js/settings_bots.js index 28848021b0..a680e23e64 100644 --- a/static/js/settings_bots.js +++ b/static/js/settings_bots.js @@ -306,6 +306,7 @@ exports.set_up = function () { edit_button.show(); show_row_again(); avatar_widget.clear(); + typeahead_helper.clear_rendered_persons(); bot_info.find('.name').text(full_name); if (data.avatar_url) { diff --git a/static/js/typeahead_helper.js b/static/js/typeahead_helper.js index c36c7f4b8f..fe346deb43 100644 --- a/static/js/typeahead_helper.js +++ b/static/js/typeahead_helper.js @@ -94,6 +94,10 @@ exports.render_person = function (person) { return html; }; +exports.clear_rendered_persons = function () { + rendered.persons.clear(); +}; + exports.render_user_group = function (user_group) { var html = rendered.user_groups.get(user_group.id); if (html === undefined) {