flectra/addons/web_tour/static/src/js/debug_manager.js
2018-01-16 02:34:37 -08:00

50 lines
1.4 KiB
JavaScript

flectra.define('web_tour.DebugManager', function (require) {
"use strict";
var core = require("web.core");
var DebugManager = require('web.DebugManager');
var Dialog = require("web.Dialog");
var tour = require('web_tour.tour');
function get_active_tours () {
return _.difference(_.keys(tour.tours), tour.consumed_tours);
}
DebugManager.include({
start: function () {
this.consume_tours_enabled = get_active_tours().length > 0;
return this._super.apply(this, arguments);
},
consume_tours: function () {
var active_tours = get_active_tours();
if (active_tours.length > 0) { // tours might have been consumed meanwhile
this._rpc({
model: 'web_tour.tour',
method: 'consume',
args: [active_tours],
})
.then(function () {
window.location.reload();
});
}
},
start_tour: function () {
var dialog = new Dialog(this, {
title: 'Tours',
$content: core.qweb.render('WebClient.DebugManager.ToursDialog', {
tours: tour.tours
}),
});
dialog.opened().then(function () {
dialog.$('.o_start_tour').on('click', function (e) {
e.preventDefault();
tour.run($(e.target).data('name'));
});
});
dialog.open();
},
});
});