[REF] account,web(_tour): close rainbowman on click

This rev. makes the Rainbowman stop listening to event
'clear_uncommitted_changes' on core.bus, as this event is about to
be removed (in a next commit). It was using it to destroy itself
when such an event was triggered (basically, when the current view
was left).

Instead, we removed the option 'click_close' as, when set to true,
which was the default, the rainbowman was destroyed as soon as the
user clicked outside the raibowman.
This commit is contained in:
Aaron Bohy
2018-01-16 20:49:19 +01:00
parent de27eaa971
commit 9bee25a9df
4 changed files with 8 additions and 16 deletions
@@ -126,7 +126,6 @@ var StatementRenderer = Widget.extend(FieldManagerMixin, {
type: 'rainbow_man',
fadeout: 'no',
message: $done,
click_close: false,
});
this.$el.css('min-height', '450px');
}
@@ -33,8 +33,6 @@ var RainbowMan = Widget.extend({
* [options.fadeout='no'] will keep rainbowman on screen until user clicks
* anywhere outside rainbowman
* @param {string} [options.img_url] URL of the image to be displayed
* @param {boolean} [options.click_close=true] If true, destroys rainbowman on
* click outside
*/
init: function (options) {
this._super.apply(this, arguments);
@@ -43,23 +41,19 @@ var RainbowMan = Widget.extend({
fadeout: 'medium',
img_url: '/web/static/src/img/smile.svg',
message: _t('Well Done!'),
click_close: true,
});
this.delay = rainbowDelay[this.options.fadeout];
core.bus.on('clear_uncommitted_changes', this, this.destroy);
},
/**
* @override
*/
start: function () {
var self = this;
if (this.options.click_close) {
core.bus.on('click', this, function (ev) {
if (ev.originalEvent && ev.target.className.indexOf('o_reward') === -1) {
this.destroy();
}
});
}
core.bus.on('click', this, function (ev) {
if (ev.originalEvent && ev.target.className.indexOf('o_reward') === -1) {
this.destroy();
}
});
if (this.delay) {
setTimeout(function () {
self.$el.addClass('o_reward_fading');
@@ -9,7 +9,6 @@ QUnit.module('RainbowMan', {
beforeEach: function () {
this.data = {
message: 'Congrats!',
click_close: false
};
},
}, function () {
@@ -416,13 +416,13 @@ return core.Class.extend(mixins.EventDispatcherMixin, ServicesMixin, {
_consume_tour: function (tour_name, error) {
delete this.active_tooltips[tour_name];
//display rainbow at the end of any tour
if (this.tours[tour_name].rainbowMan && this.running_tour !== tour_name
&& this.tours[tour_name].current_step === this.tours[tour_name].steps.length) {
if (this.tours[tour_name].rainbowMan && this.running_tour !== tour_name &&
this.tours[tour_name].current_step === this.tours[tour_name].steps.length) {
var $rainbow_message = $('<strong>' +
'<b>Good job!</b>' +
' You went through all steps of this tour.' +
'</strong>');
new RainbowMan({message: $rainbow_message, click_close: false}).appendTo(this.$body);
new RainbowMan({message: $rainbow_message}).appendTo(this.$body);
}
this.tours[tour_name].current_step = 0;
local_storage.removeItem(get_step_key(tour_name));