[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:
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user