50 lines
1.4 KiB
JavaScript
50 lines
1.4 KiB
JavaScript
|
odoo.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();
|
||
|
},
|
||
|
});
|
||
|
|
||
|
});
|