From d6254a264bcbd04a2719c17347f08ee616d4050c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9ry=20Debongnie?= Date: Tue, 10 Mar 2015 08:52:02 +0100 Subject: [PATCH] [REF] website_version: update to the new module system --- .../static/src/js/edit_version.js | 143 ++--- .../static/src/js/menu_version.js | 528 +++++++++--------- .../src/js/website_version.tour.versioning.js | 349 ++++++------ .../website_version/static/src/js/widget.js | 80 ++- 4 files changed, 550 insertions(+), 550 deletions(-) diff --git a/addons/website_version/static/src/js/edit_version.js b/addons/website_version/static/src/js/edit_version.js index f4efd964265..5cb427619c3 100644 --- a/addons/website_version/static/src/js/edit_version.js +++ b/addons/website_version/static/src/js/edit_version.js @@ -1,79 +1,80 @@ -(function() { - 'use strict'; - var hash = "#advanced-view-editor"; - var _t = openerp._t; - - var website=openerp.website; +odoo.define('website_version.edit', ['web.ajax', 'web.core', 'website.editor'], function (require) { +'use strict'; - website.action= {}; - - website.EditorBar.include({ - start: function() { - var self = this; - this.$el.on('click', '#save_as_new_version', function() { - - var wizardA = $(openerp.qweb.render("website_version.new_version",{'default_name': moment().format('L')})); - wizardA.appendTo($('body')).modal({"keyboard" :true}); - wizardA.on('click','.o_create', function(){ - wizardA.find('.o_message').remove(); - var version_name = wizardA.find('.o_version_name').val(); - if(version_name.length == 0){ - wizardA.find(".o_version_name").after("

*"+_t("This field is required")+"

"); - } - else{ - wizardA.modal("hide"); - openerp.jsonRpc( '/website_version/create_version', 'call', { 'name': version_name, 'version_id': 0}).then(function (result) { - $('html').data('version_id', result); - var wizard = $(openerp.qweb.render("website_version.dialogue",{message:_.str.sprintf("You are now working on version: %s.", version_name), - dialogue:_.str.sprintf("If you edit this page or others, all changes will be recorded in the version. It will not be visible by visitors until you publish the version.")})); - wizard.appendTo($('body')).modal({"keyboard" :true}); - wizard.on('click','.o_confirm', function(){ - self.save(); - }); - wizard.on('hidden.bs.modal', function () {$(this).remove();}); - }).fail(function(){ - var wizard = $(openerp.qweb.render("website_version.message",{message:_t("This name already exists.")})); - wizard.appendTo($('body')).modal({"keyboard" :true}); - wizard.on('hidden.bs.modal', function () {$(this).remove();}); - }); - } - }); - wizardA.on('hidden.bs.modal', function () {$(this).remove();}); - - }); - this.$el.on('click', '#save_and_publish', function() { - var version_id = parseInt($('html').data('version_id')); - if(version_id) - { - self.save(); - } - else - { - var wizard = $(openerp.qweb.render("website_version.publish",{message:_t("Are you sure you want to publish your modifications.")})); - wizard.appendTo($('body')).modal({"keyboard" :true}); - wizard.on('click','.o_confirm', function(){ - self.save(); - }); - wizard.on('hidden.bs.modal', function () {$(this).remove();}); - } +var ajax = require('web.ajax'); +var core = require('web.core'); +var editor = require('website.editor'); - }); +var _t = core._t; +var qweb = core.qweb; - $('.option_choice').click(function() { - self.$el.find(".o_second_choice").remove(); - var name = $('#version-menu-button').data('version_name'); - if(name){ - self.$el.find(".o_first_choice").before(openerp.qweb.render("all_options", {version:'Save on '+name})); +editor.EditorBar.include({ + start: function() { + var self = this; + this.$el.on('click', '#save_as_new_version', function() { + + var wizardA = $(qweb.render("website_version.new_version",{'default_name': moment().format('L')})); + wizardA.appendTo($('body')).modal({"keyboard" :true}); + wizardA.on('click','.o_create', function(){ + wizardA.find('.o_message').remove(); + var version_name = wizardA.find('.o_version_name').val(); + if(version_name.length === 0){ + wizardA.find(".o_version_name").after("

*"+_t("This field is required")+"

"); } else{ - self.$el.find(".o_first_choice").before(openerp.qweb.render("all_options", {version:'Save and Publish'})); + wizardA.modal("hide"); + ajax.jsonRpc( '/website_version/create_version', 'call', { 'name': version_name, 'version_id': 0}).then(function (result) { + $('html').data('version_id', result); + var wizard = $(qweb.render("website_version.dialogue",{message:_.str.sprintf("You are now working on version: %s.", version_name), + dialogue:_.str.sprintf("If you edit this page or others, all changes will be recorded in the version. It will not be visible by visitors until you publish the version.")})); + wizard.appendTo($('body')).modal({"keyboard" :true}); + wizard.on('click','.o_confirm', function(){ + self.save(); + }); + wizard.on('hidden.bs.modal', function () {$(this).remove();}); + }).fail(function(){ + var wizard = $(qweb.render("website_version.message",{message:_t("This name already exists.")})); + wizard.appendTo($('body')).modal({"keyboard" :true}); + wizard.on('hidden.bs.modal', function () {$(this).remove();}); + }); } - }); - - return this._super(); - } - }); + wizardA.on('hidden.bs.modal', function () {$(this).remove();}); - -})(); \ No newline at end of file + }); + this.$el.on('click', '#save_and_publish', function() { + var version_id = parseInt($('html').data('version_id')); + if(version_id) + { + self.save(); + } + else + { + var wizard = $(qweb.render("website_version.publish",{message:_t("Are you sure you want to publish your modifications.")})); + wizard.appendTo($('body')).modal({"keyboard" :true}); + wizard.on('click','.o_confirm', function(){ + self.save(); + }); + wizard.on('hidden.bs.modal', function () {$(this).remove();}); + } + + }); + + $('.option_choice').click(function() { + self.$el.find(".o_second_choice").remove(); + var name = $('#version-menu-button').data('version_name'); + if(name){ + self.$el.find(".o_first_choice").before(qweb.render("all_options", {version:'Save on '+name})); + } + else{ + self.$el.find(".o_first_choice").before(qweb.render("all_options", {version:'Save and Publish'})); + } + + }); + + return this._super(); + } +}); + + +}); diff --git a/addons/website_version/static/src/js/menu_version.js b/addons/website_version/static/src/js/menu_version.js index 9d30a393f58..c6c9ecbec2e 100644 --- a/addons/website_version/static/src/js/menu_version.js +++ b/addons/website_version/static/src/js/menu_version.js @@ -1,291 +1,293 @@ -(function() { - 'use strict'; - var _t = openerp._t; - - var website=openerp.website; - var QWeb = openerp.qweb; - website.add_template_file('/website_version/static/src/xml/version_templates.xml'); - - website.EditorVersion = openerp.Widget.extend({ - start: function() { - var self = this; +odoo.define('website_version.menu_version', ['web.ajax', 'web.core', 'web.Widget', 'website.website'], function (require) { +'use strict'; - $('html').data('version_id', this.$el.find("#version-menu-button").data("version_id")); - var _get_context = website.get_context; - website.get_context = function (dict) { - return _.extend({ 'version_id': $('html').data('version_id') }, _get_context(dict)); - }; +var ajax = require('web.ajax'); +var core = require('web.core'); +var Widget = require('web.Widget'); +var website = require('website.website'); - self.$el.on('click', 'a[data-action]', function(ev) { - ev.preventDefault(); - self[$(this).data('action')](ev); +var _t = core._t; +var QWeb = core.qweb; + +website.add_template_file('/website_version/static/src/xml/version_templates.xml'); + +var EditorVersion = Widget.extend({ + start: function() { + var self = this; + + $('html').data('version_id', this.$el.find("#version-menu-button").data("version_id")); + var _get_context = website.get_context; + website.get_context = function (dict) { + return _.extend({ 'version_id': $('html').data('version_id') }, _get_context(dict)); + }; + + self.$el.on('click', 'a[data-action]', function(ev) { + ev.preventDefault(); + self[$(this).data('action')](ev); + }); + + this.$el.find('#version-menu-button').click(function() { + var view_id = parseInt($('html').attr('data-view-xmlid')); + ajax.jsonRpc( '/website_version/all_versions', 'call', {'view_id': view_id}).then(function (result) { + self.$el.find(".o_version_choice").remove(); + self.$el.find(".first_divider").before(QWeb.render("all_versions", {versions:result})); + + }); + ajax.jsonRpc( '/website_version/has_experiments', 'call', {'view_id': view_id}).then(function (result) { + self.$el.find(".o_experiment").remove(); + if(result){ + self.$el.find(".create_experiment").after(QWeb.render("experiment_menu")); + } }); - this.$el.find('#version-menu-button').click(function() { - var view_id = parseInt($('html').attr('data-view-xmlid')); - openerp.jsonRpc( '/website_version/all_versions', 'call', {'view_id': view_id}).then(function (result) { - self.$el.find(".o_version_choice").remove(); - self.$el.find(".first_divider").before(QWeb.render("all_versions", {versions:result})); + }); + return this._super(); + }, + duplicate_version: function() { + var version_id = $('html').data('version_id'); + var wizardA = $(QWeb.render("website_version.new_version",{'default_name': moment().format('L')})); + wizardA.appendTo($('body')).modal({"keyboard" :true}); + wizardA.on('click','.o_create', function(){ + wizardA.find('.o_message').remove(); + var version_name = wizardA.find('.o_version_name').val(); + if(version_name.length === 0){ + wizardA.find(".o_version_name").after("

*"+_t("This field is required")+"

"); + } + else{ + wizardA.modal("hide"); + ajax.jsonRpc( '/website_version/create_version', 'call', { 'name': version_name, 'version_id': version_id}).then(function (result) { + + var wizard = $(QWeb.render("website_version.dialogue",{message:_.str.sprintf("You are now working on version: %s.", version_name), + dialogue:_.str.sprintf("If you edit this page or others, all changes will be recorded in the version. It will not be visible by visitors until you publish the version.")})); + wizard.appendTo($('body')).modal({"keyboard" :true}); + wizard.on('click','.o_confirm', function(){ + window.location.href = '\?enable_editor'; + }); + wizard.on('hidden.bs.modal', function () {$(this).remove();}); + }).fail(function(){ + var wizard = $(QWeb.render("website_version.message",{message:_t("This name already exists.")})); + wizard.appendTo($('body')).modal({"keyboard" :true}); + wizard.on('hidden.bs.modal', function () {$(this).remove();}); }); - openerp.jsonRpc( '/website_version/has_experiments', 'call', {'view_id': view_id}).then(function (result) { - self.$el.find(".o_experiment").remove(); - if(result){ - self.$el.find(".create_experiment").after(QWeb.render("experiment_menu")); - } - }); - + } + }); + wizardA.on('hidden.bs.modal', function () {$(this).remove();}); + }, + + change_version: function(event) { + var version_id = parseInt($(event.target).parent().data("version_id")); + if(! version_id){ + version_id = 0;//By default master + } + ajax.jsonRpc( '/website_version/change_version', 'call', { 'version_id':version_id }).then(function () { + location.reload(); }); - return this._super(); - }, - - duplicate_version: function(event) { - var version_id = $('html').data('version_id'); - var wizardA = $(openerp.qweb.render("website_version.new_version",{'default_name': moment().format('L')})); - wizardA.appendTo($('body')).modal({"keyboard" :true}); - wizardA.on('click','.o_create', function(){ - wizardA.find('.o_message').remove(); - var version_name = wizardA.find('.o_version_name').val(); - if(version_name.length == 0){ - wizardA.find(".o_version_name").after("

*"+_t("This field is required")+"

"); + }, + + delete_version: function(event) { + console.log(event); + var version_id = parseInt($(event.currentTarget).parent().data("version_id")); + var name = $(event.currentTarget).parent().children(':last-child').text(); + ajax.jsonRpc( '/website_version/check_version', 'call', { 'version_id':version_id }).then(function (result) { + if (result){ + var wizard = $(QWeb.render("website_version.message",{message:_.str.sprintf("You cannot delete the %s version because it is in a running or paused experiment", name)})); + wizard.appendTo($('body')).modal({"keyboard" :true}); + wizard.on('hidden.bs.modal', function () {$(this).remove();}); } else{ - wizardA.modal("hide"); - openerp.jsonRpc( '/website_version/create_version', 'call', { 'name': version_name, 'version_id': version_id}).then(function (result) { - - var wizard = $(openerp.qweb.render("website_version.dialogue",{message:_.str.sprintf("You are now working on version: %s.", version_name), - dialogue:_.str.sprintf("If you edit this page or others, all changes will be recorded in the version. It will not be visible by visitors until you publish the version.")})); - wizard.appendTo($('body')).modal({"keyboard" :true}); - wizard.on('click','.o_confirm', function(){ - window.location.href = '\?enable_editor'; + var wizardA = $(QWeb.render("website_version.delete_message",{message:_.str.sprintf("Are you sure you want to delete the %s version ?", name)})); + wizardA.appendTo($('body')).modal({"keyboard" :true}); + wizardA.on('click','.o_confirm', function(){ + ajax.jsonRpc( '/website_version/delete_version', 'call', { 'version_id':version_id }).then(function (result) { + var wizardB = $(QWeb.render("website_version.message",{message:_.str.sprintf("The %s version has been deleted.", result)})); + wizardB.appendTo($('body')).modal({"keyboard" :true}); + wizardB.on('click','.o_confirm', function(){ + location.reload(); + wizardB.on('hidden.bs.modal', function () {$(this).remove();}); + }); }); - wizard.on('hidden.bs.modal', function () {$(this).remove();}); - }).fail(function(){ - var wizard = $(openerp.qweb.render("website_version.message",{message:_t("This name already exists.")})); - wizard.appendTo($('body')).modal({"keyboard" :true}); - wizard.on('hidden.bs.modal', function () {$(this).remove();}); + }); + wizardA.on('hidden.bs.modal', function () {$(this).remove();}); + } + }); + }, + + publish_version: function() { + var version_id = parseInt($('html').data('version_id')); + var name = $('#version-menu-button').attr('data-version_name'); + ajax.jsonRpc( '/website_version/diff_version', 'call', { 'version_id':version_id}).then(function (result) { + console.log(result); + var wizardA = $(QWeb.render("website_version.publish_message",{message:_.str.sprintf("Publish Version %s", name), list:result})); + wizardA.appendTo($('body')).modal({"keyboard" :true}); + wizardA.on('click','.o_confirm', function(){ + wizardA.find('.o_message').remove(); + var check = wizardA.find('.o_check').is(':checked'); + var copy_master_name = wizardA.find('.o_name').val(); + if(check){ + if(copy_master_name.length === 0){ + wizardA.find(".o_name").after("

*"+_t("This field is required")+"

"); + } + else{ + ajax.jsonRpc( '/website_version/publish_version', 'call', { 'version_id':version_id, 'save_master':true, 'copy_master_name':copy_master_name}).then(function (result) { + var wizardB = $(QWeb.render("website_version.dialogue",{message:_.str.sprintf("The %s version has been published", result), dialogue:_.str.sprintf("The master has been saved on a new version called %s.",copy_master_name)})); + wizardB.appendTo($('body')).modal({"keyboard" :true}); + wizardB.on('click','.o_confirm', function(){ + location.reload(); + }); + wizardB.on('hidden.bs.modal', function () {$(this).remove();}); + }); + } + } + else{ + ajax.jsonRpc( '/website_version/publish_version', 'call', { 'version_id':version_id, 'save_master':false, 'copy_master_name':""}).then(function (result) { + var wizardC = $(QWeb.render("website_version.message",{message:_.str.sprintf("The %s version has been published.", result)})); + wizardC.appendTo($('body')).modal({"keyboard" :true}); + wizardC.on('click','.o_confirm', function(){ + location.reload(); + }); + wizardC.on('hidden.bs.modal', function () {$(this).remove();}); }); } }); + wizardA.on('click','input[name="optionsRadios"]', function(){ + wizardA.find('.o_message').remove(); + wizardA.find('.o_name').toggle( wizardA.find('.o_check').is(':checked') ); + }); wizardA.on('hidden.bs.modal', function () {$(this).remove();}); - }, - - change_version: function(event) { - var version_id = parseInt($(event.target).parent().data("version_id")); - if(! version_id){ - version_id = 0;//By default master - } - openerp.jsonRpc( '/website_version/change_version', 'call', { 'version_id':version_id }).then(function (result) { - location.reload(); - }); - }, + }); + }, - delete_version: function(event) { - console.log(event); - var version_id = parseInt($(event.currentTarget).parent().data("version_id")); - var name = $(event.currentTarget).parent().children(':last-child').text(); - openerp.jsonRpc( '/website_version/check_version', 'call', { 'version_id':version_id }).then(function (result) { - if (result){ - var wizard = $(openerp.qweb.render("website_version.message",{message:_.str.sprintf("You cannot delete the %s version because it is in a running or paused experiment", name)})); - wizard.appendTo($('body')).modal({"keyboard" :true}); - wizard.on('hidden.bs.modal', function () {$(this).remove();}); - } - else{ - var wizardA = $(openerp.qweb.render("website_version.delete_message",{message:_.str.sprintf("Are you sure you want to delete the %s version ?", name)})); - wizardA.appendTo($('body')).modal({"keyboard" :true}); - wizardA.on('click','.o_confirm', function(){ - openerp.jsonRpc( '/website_version/delete_version', 'call', { 'version_id':version_id }).then(function (result) { - var wizardB = $(openerp.qweb.render("website_version.message",{message:_.str.sprintf("The %s version has been deleted.", result)})); - wizardB.appendTo($('body')).modal({"keyboard" :true}); - wizardB.on('click','.o_confirm', function(){ - location.reload(); - wizardB.on('hidden.bs.modal', function () {$(this).remove();}); - }); - }); - }); - wizardA.on('hidden.bs.modal', function () {$(this).remove();}); - } - }); - }, + diff_version: function() { + var version_id = parseInt($('html').data('version_id')); + var name = $('#version-menu-button').data('version_name'); + ajax.jsonRpc( '/website_version/diff_version', 'call', { 'version_id':version_id}).then(function (result) { + var wizard = $(QWeb.render("website_version.diff",{list:result, version_name:name})); + wizard.appendTo($('body')).modal({"keyboard" :true}); + wizard.on('click','.o_confirm', function(){}); + wizard.on('hidden.bs.modal', function () {$(this).remove();}); + }); + }, - publish_version: function(event) { - var version_id = parseInt($('html').data('version_id')); - var name = $('#version-menu-button').attr('data-version_name'); - openerp.jsonRpc( '/website_version/diff_version', 'call', { 'version_id':version_id}).then(function (result) { - console.log(result); - var wizardA = $(openerp.qweb.render("website_version.publish_message",{message:_.str.sprintf("Publish Version %s", name), list:result})); - wizardA.appendTo($('body')).modal({"keyboard" :true}); - wizardA.on('click','.o_confirm', function(){ - wizardA.find('.o_message').remove(); - var check = wizardA.find('.o_check').is(':checked'); - var copy_master_name = wizardA.find('.o_name').val(); - if(check){ - if(copy_master_name.length == 0){ - wizardA.find(".o_name").after("

*"+_t("This field is required")+"

"); - } - else{ - openerp.jsonRpc( '/website_version/publish_version', 'call', { 'version_id':version_id, 'save_master':true, 'copy_master_name':copy_master_name}).then(function (result) { - var wizardB = $(openerp.qweb.render("website_version.dialogue",{message:_.str.sprintf("The %s version has been published", result), dialogue:_.str.sprintf("The master has been saved on a new version called %s.",copy_master_name)})); - wizardB.appendTo($('body')).modal({"keyboard" :true}); - wizardB.on('click','.o_confirm', function(){ - location.reload(); - }); - wizardB.on('hidden.bs.modal', function () {$(this).remove();}); - }); - } + google_analytics: function(){ + window.location.href = 'https://www.google.com/analytics/web'; + + }, + + create_experiment: function() { + var view_id = parseInt($('html').attr('data-view-xmlid')); + ajax.jsonRpc( '/website_version/all_versions_all_goals', 'call', { 'view_id': view_id }).then(function (result) { + var wizardA = $(QWeb.render("website_version.create_experiment",{versions:result.tab_version, goals:result.tab_goal, config:result.check_conf})); + wizardA.appendTo($('body')).modal({"keyboard" :true}); + + wizardA.on('click','.o_launch', function(){ + wizardA.find('.o_message').remove(); + var name = wizardA.find('.o_name').val(); + var tab = wizardA.find('.o_version'); + var result = []; + var i; + for (i = 0; i < tab.length; i++){ + if ($(tab[i]).is(':checked')) { + result.push(parseInt($(tab[i]).attr('data-version_id'))); } - else{ - openerp.jsonRpc( '/website_version/publish_version', 'call', { 'version_id':version_id, 'save_master':false, 'copy_master_name':""}).then(function (result) { - var wizardC = $(openerp.qweb.render("website_version.message",{message:_.str.sprintf("The %s version has been published.", result)})); - wizardC.appendTo($('body')).modal({"keyboard" :true}); - wizardC.on('click','.o_confirm', function(){ + } + var goal_id = wizardA.find('.box').val(); + var check = true; + if (name.length === 0){ + wizardA.find(".o_name").after("

*"+_t("This field is required")+"

"); + check = false; + } + if (result.length === 0 && check){ + wizardA.find(".o_versions").after("

*"+_t("You must select at least one version which is not Master.")+"

"); + check = false; + } + if(check){ + ajax.jsonRpc( '/website_version/launch_experiment', 'call', { 'name':name, 'version_ids':result, 'goal_id':goal_id }).then(function (existing_experiment) { + if (!existing_experiment.existing){ + var wizardB = $(QWeb.render("website_version.dialogue",{message:_.str.sprintf("Your %s experiment is created.", name), dialogue:_t(" Now you can manage this experiment by clicking on Manage A/B tests.")})); + wizardB.appendTo($('body')).modal({"keyboard" :true}); + wizardB.on('click','.o_confirm', function(){ location.reload(); }); - wizardC.on('hidden.bs.modal', function () {$(this).remove();}); - }); - } - }); - wizardA.on('click','input[name="optionsRadios"]', function(){ - wizardA.find('.o_message').remove(); - wizardA.find('.o_name').toggle( wizardA.find('.o_check').is(':checked') ); - }); - wizardA.on('hidden.bs.modal', function () {$(this).remove();}); - }); - }, + wizardB.on('hidden.bs.modal', function () {$(this).remove();}); - diff_version: function(event) { - var version_id = parseInt($('html').data('version_id')); - var name = $('#version-menu-button').data('version_name'); - openerp.jsonRpc( '/website_version/diff_version', 'call', { 'version_id':version_id}).then(function (result) { - var wizard = $(openerp.qweb.render("website_version.diff",{list:result, version_name:name})); - wizard.appendTo($('body')).modal({"keyboard" :true}); - wizard.on('click','.o_confirm', function(){}); - wizard.on('hidden.bs.modal', function () {$(this).remove();}); - }); - }, - - google_analytics: function(event){ - window.location.href = 'https://www.google.com/analytics/web'; - - }, - - create_experiment: function() { - var self = this; - var view_id = parseInt($('html').attr('data-view-xmlid')); - openerp.jsonRpc( '/website_version/all_versions_all_goals', 'call', { 'view_id': view_id }).then(function (result) { - var wizardA = $(openerp.qweb.render("website_version.create_experiment",{versions:result.tab_version, goals:result.tab_goal, config:result.check_conf})); - wizardA.appendTo($('body')).modal({"keyboard" :true}); - - wizardA.on('click','.o_launch', function(){ - wizardA.find('.o_message').remove(); - var name = wizardA.find('.o_name').val(); - var tab = wizardA.find('.o_version'); - var result = []; - var i; - for (var i = 0; i < tab.length; i++){ - if ($(tab[i]).is(':checked')) { - result.push(parseInt($(tab[i]).attr('data-version_id'))); } - } - var goal_id = wizardA.find('.box').val(); - var check = true; - if (name.length == 0){ - wizardA.find(".o_name").after("

*"+_t("This field is required")+"

"); - check = false; - } - if (result.length == 0 && check){ - wizardA.find(".o_versions").after("

*"+_t("You must select at least one version which is not Master.")+"

"); - check = false; - } - if(check){ - openerp.jsonRpc( '/website_version/launch_experiment', 'call', { 'name':name, 'version_ids':result, 'goal_id':goal_id }).then(function (existing_experiment) { - if (!existing_experiment['existing']){ - var wizardB = $(openerp.qweb.render("website_version.dialogue",{message:_.str.sprintf("Your %s experiment is created.", name), dialogue:_t(" Now you can manage this experiment by clicking on Manage A/B tests.")})); - wizardB.appendTo($('body')).modal({"keyboard" :true}); - wizardB.on('click','.o_confirm', function(){ - location.reload(); - }); - wizardB.on('hidden.bs.modal', function () {$(this).remove();}); - + else{ + if(existing_experiment.existing == 1){ + wizardA.find(".o_versions").after("

*"+_.str.sprintf("Your %s experiment cannot be launched because this experiment contains a view which is already used in the running %s experiment.", name, existing_experiment['name'])+"

"); } else{ - if(existing_experiment['existing'] == 1){ - wizardA.find(".o_versions").after("

*"+_.str.sprintf("Your %s experiment cannot be launched because this experiment contains a view which is already used in the running %s experiment.", name, existing_experiment['name'])+"

"); - } - else{ - wizardA.find(".o_versions").after("

*"+_.str.sprintf("You cannot have more then 24 running/paused experiments.")+"

"); - } + wizardA.find(".o_versions").after("

*"+_.str.sprintf("You cannot have more then 24 running/paused experiments.")+"

"); } - }); - } - }); - wizardA.on('click','.o_configure', function(){ - var website_id = $('html').attr('data-website-id'); - window.location.href ='/web#id='+website_id+'&view_type=form&model=website&action=website_version.action_website_view'; - }); - wizardA.on('click','.o_validate_0', function(){ - wizardA.find('.o_message').remove(); - var website_id = $('html').attr('data-website-id'); - var ga_key = wizardA.find('.o_ga_key').val(); - var view_id = wizardA.find('.o_view_id').val(); - var client_id = wizardA.find('.o_client_id').val(); - var client_secret = wizardA.find('.o_client_secret').val(); - if(ga_key.length == 0 || view_id.length == 0 || client_id.length == 0 || client_secret.length == 0){ - wizardA.find(".o_configure_ab").after("

*"+_t("You must fill all the fields.")+"

"); - } - else{ - openerp.jsonRpc( '/website_version/set_google_access', 'call', {'ga_key':ga_key, 'view_id':view_id, 'client_id':client_id, 'client_secret':client_secret}).then(function (result) { - var context = website.get_context(); - openerp.jsonRpc( '/website_version/google_access', 'call', { - fromurl: window.location.href, - local_context: context - }).done(function(o) { - if (o.status === "need_auth") { - var wizardC = $(openerp.qweb.render("website_version.message",{message:_t("You will be redirected to Google to authorize access to your Analytics Account!")})); - wizardC.appendTo($('body')).modal({"keyboard" :true}); - wizardC.on('click','.o_confirm', function(){ - window.location.href = o.url; - }); - wizardC.on('hidden.bs.modal', function () {$(this).remove();}); - } - else if (o.status === "need_config_from_admin"){ - if (confirm(_t("The Google Management API key needs to be configured before you can use it, do you want to do it now?"))) { - window.location.href = o.action; - } - } - }).always(function(o) { $('button.GoogleAccess').prop('disabled', false); }); - }); - } - }); - wizardA.on('click','.o_validate_2', function(){ - var website_id = $('html').attr('data-website-id'); - var ga_key = wizardA.find('.o_ga_key').val(); - var view_id = wizardA.find('.o_view_id').val(); - if(ga_key.length == 0 || view_id.length == 0){ - wizardA.find(".o_configure_ab").after("

*"+_t("You must fill all the fields.")+"

"); - } - else{ - openerp.jsonRpc( '/website_version/set_google_access', 'call', {'ga_key':ga_key, 'view_id':view_id, 'client_id':0, 'client_secret':0}); - } - }); - wizardA.on('hidden.bs.modal', function () {$(this).remove();}); + } + }); + } }); - }, + wizardA.on('click','.o_configure', function(){ + var website_id = $('html').attr('data-website-id'); + window.location.href ='/web#id='+website_id+'&view_type=form&model=website&action=website_version.action_website_view'; + }); + wizardA.on('click','.o_validate_0', function(){ + wizardA.find('.o_message').remove(); + var ga_key = wizardA.find('.o_ga_key').val(); + var view_id = wizardA.find('.o_view_id').val(); + var client_id = wizardA.find('.o_client_id').val(); + var client_secret = wizardA.find('.o_client_secret').val(); + if(ga_key.length === 0 || view_id.length === 0 || client_id.length === 0 || client_secret.length === 0){ + wizardA.find(".o_configure_ab").after("

*"+_t("You must fill all the fields.")+"

"); + } + else{ + ajax.jsonRpc( '/website_version/set_google_access', 'call', {'ga_key':ga_key, 'view_id':view_id, 'client_id':client_id, 'client_secret':client_secret}).then(function (result) { + var context = website.get_context(); + ajax.jsonRpc( '/website_version/google_access', 'call', { + fromurl: window.location.href, + local_context: context + }).done(function(o) { + if (o.status === "need_auth") { + var wizardC = $(QWeb.render("website_version.message",{message:_t("You will be redirected to Google to authorize access to your Analytics Account!")})); + wizardC.appendTo($('body')).modal({"keyboard" :true}); + wizardC.on('click','.o_confirm', function(){ + window.location.href = o.url; + }); + wizardC.on('hidden.bs.modal', function () {$(this).remove();}); + } + else if (o.status === "need_config_from_admin"){ + if (confirm(_t("The Google Management API key needs to be configured before you can use it, do you want to do it now?"))) { + window.location.href = o.action; + } + } + }).always(function() { $('button.GoogleAccess').prop('disabled', false); }); + }); + } + }); + wizardA.on('click','.o_validate_2', function(){ + var ga_key = wizardA.find('.o_ga_key').val(); + var view_id = wizardA.find('.o_view_id').val(); + if(ga_key.length === 0 || view_id.length === 0){ + wizardA.find(".o_configure_ab").after("

*"+_t("You must fill all the fields.")+"

"); + } + else{ + ajax.jsonRpc( '/website_version/set_google_access', 'call', {'ga_key':ga_key, 'view_id':view_id, 'client_id':0, 'client_secret':0}); + } + }); + wizardA.on('hidden.bs.modal', function () {$(this).remove();}); + }); + }, - manage_experiment: function() { - window.location.href = '/web#return_label=Website&action=website_version.action_experiment'; - }, + manage_experiment: function() { + window.location.href = '/web#return_label=Website&action=website_version.action_experiment'; + }, - statistics: function() { - window.open('https://www.google.com/analytics/web/?authuser=0#report/siteopt-experiments/','_blank'); - } - - }); + statistics: function() { + window.open('https://www.google.com/analytics/web/?authuser=0#report/siteopt-experiments/','_blank'); + } - $(document).ready(function() { - var version = new website.EditorVersion(); - version.setElement($("#version-menu")); - version.start(); - }); - -})(); +}); + +$(document).ready(function() { + var version = new EditorVersion(); + version.setElement($("#version-menu")); + version.start(); +}); + +}); diff --git a/addons/website_version/static/src/js/website_version.tour.versioning.js b/addons/website_version/static/src/js/website_version.tour.versioning.js index 1bff0513717..5fef5a11df0 100644 --- a/addons/website_version/static/src/js/website_version.tour.versioning.js +++ b/addons/website_version/static/src/js/website_version.tour.versioning.js @@ -1,193 +1,192 @@ -(function () { - 'use strict'; +odoo.define('website_version.tour', ['web.core', 'web.Tour'], function (require) { +'use strict'; - var _t = openerp._t; +var core = require('web.core'); +var Tour = require('web.Tour'); - openerp.Tour.register({ - id: 'versioning', - name: "Tutorial versioning", - path: '/', - mode: 'tutorial', - steps: [ - //1. +var _t = core._t; - { - title: _t("Welcome to the tutorial"), - content: _t("This tutorial will guide you to build a version of your home page."), - popover: { next: _t("Start Tutorial"), end: _t("Skip It") }, - }, - { - title: _t("Click on Version"), - content: _t("You can create a version for every page of your website."), - popover: { fixed: true }, - element: 'a#version-menu-button', - }, - { - title: _t("Click on New version"), - popover: { fixed: true }, - element: 'a[data-action="duplicate_version"]:first', - }, - { - title: _t("Give a version name"), - content: _t("Give a clever name to retrieve it easily."), - popover: { fixed: true }, - waitFor: '.modal button.btn-primary', - element: '.modal input[type="text"]', - sampleText: 'Test', - }, - { - title: _t("Validate the version name"), - popover: { fixed: true }, - element: '.modal button.btn-primary', - }, - { - title: _t("Confirm"), - popover: { fixed: true }, - waitNot: '.modal input', - element: '.modal button.o_confirm', - }, - { - title: _t("You are on your new version"), - content: _t("All the modifications you will do, will be saved in this version."), - waitNot: '.modal button.o_confirm', - }, - { - title: _t("Click on Edit"), - content: _t("Every page of your website can be modified through the Edit button."), - waitFor: 'button[data-action="edit"]', - element: 'button[data-action="edit"]', - }, - { - snippet: '#snippet_structure .oe_snippet:first', - placement: 'bottom', - title: _t("Drag & Drop a Banner"), - content: _t("Drag the Banner block and drop it in your page."), - popover: { fixed: true }, - }, - { - waitFor: '.oe_overlay_options .oe_options:visible', - element: '#wrapwrap .carousel:first div.carousel-content', - placement: 'top', - title: _t("Customize banner's text"), - content: _t("Click in the text and start editing it."), - sampleText: 'Here, a customized text', - popover: { next: _t("Continue") }, - }, - { - waitNot: '#wrap .carousel:first div.carousel-content:has(h2:'+ - 'containsExact('+_t('Your Banner Title')+')):has(h3:'+ - 'containsExact('+_t('Click to customize this text')+'))', - element: '.oe_snippet_parent:visible', - placement: 'bottom', - title: _t("Get banner properties"), - content: _t("Select the parent container to get the global options of the banner."), - popover: { fixed: true }, - }, - { - element: '.oe_overlay_options .oe_options:visible', - placement: 'left', - title: _t("Customize the banner"), - content: _t("Customize any block through this menu. Try to change the background of the banner."), - popover: { next: _t("Continue") }, - }, - { - snippet: '#snippet_structure .oe_snippet:eq(6)', - placement: 'bottom', - title: _t("Drag & Drop This Block"), - content: _t("Drag the 'Features' block and drop it below the banner."), - popover: { fixed: true }, - }, - { - waitFor: '.oe_overlay_options .oe_options:visible', - element: 'button[data-action=save]', - placement: 'right', - title: _t("Save your modifications"), - content: _t("Publish your page by clicking on the 'Save' button."), - popover: { fixed: true }, - }, - { - waitFor: 'button[data-action=save]:not(:visible)', - title: _t("Good Job!"), - content: _t("Well done, you created a version of your homepage."), - popover: { next: _t("Continue") }, - }, +Tour.register({ + id: 'versioning', + name: "Tutorial versioning", + path: '/', + mode: 'tutorial', + steps: [ + //1. - //2. + { + title: _t("Welcome to the tutorial"), + content: _t("This tutorial will guide you to build a version of your home page."), + popover: { next: _t("Start Tutorial"), end: _t("Skip It") }, + }, + { + title: _t("Click on Version"), + content: _t("You can create a version for every page of your website."), + popover: { fixed: true }, + element: 'a#version-menu-button', + }, + { + title: _t("Click on New version"), + popover: { fixed: true }, + element: 'a[data-action="duplicate_version"]:first', + }, + { + title: _t("Give a version name"), + content: _t("Give a clever name to retrieve it easily."), + popover: { fixed: true }, + waitFor: '.modal button.btn-primary', + element: '.modal input[type="text"]', + sampleText: 'Test', + }, + { + title: _t("Validate the version name"), + popover: { fixed: true }, + element: '.modal button.btn-primary', + }, + { + title: _t("Confirm"), + popover: { fixed: true }, + waitNot: '.modal input', + element: '.modal button.o_confirm', + }, + { + title: _t("You are on your new version"), + content: _t("All the modifications you will do, will be saved in this version."), + waitNot: '.modal button.o_confirm', + }, + { + title: _t("Click on Edit"), + content: _t("Every page of your website can be modified through the Edit button."), + waitFor: 'button[data-action="edit"]', + element: 'button[data-action="edit"]', + }, + { + snippet: '#snippet_structure .oe_snippet:first', + placement: 'bottom', + title: _t("Drag & Drop a Banner"), + content: _t("Drag the Banner block and drop it in your page."), + popover: { fixed: true }, + }, + { + waitFor: '.oe_overlay_options .oe_options:visible', + element: '#wrapwrap .carousel:first div.carousel-content', + placement: 'top', + title: _t("Customize banner's text"), + content: _t("Click in the text and start editing it."), + sampleText: 'Here, a customized text', + popover: { next: _t("Continue") }, + }, + { + waitNot: '#wrap .carousel:first div.carousel-content:has(h2:'+ + 'containsExact('+_t('Your Banner Title')+')):has(h3:'+ + 'containsExact('+_t('Click to customize this text')+'))', + element: '.oe_snippet_parent:visible', + placement: 'bottom', + title: _t("Get banner properties"), + content: _t("Select the parent container to get the global options of the banner."), + popover: { fixed: true }, + }, + { + element: '.oe_overlay_options .oe_options:visible', + placement: 'left', + title: _t("Customize the banner"), + content: _t("Customize any block through this menu. Try to change the background of the banner."), + popover: { next: _t("Continue") }, + }, + { + snippet: '#snippet_structure .oe_snippet:eq(6)', + placement: 'bottom', + title: _t("Drag & Drop This Block"), + content: _t("Drag the 'Features' block and drop it below the banner."), + popover: { fixed: true }, + }, + { + waitFor: '.oe_overlay_options .oe_options:visible', + element: 'button[data-action=save]', + placement: 'right', + title: _t("Save your modifications"), + content: _t("Publish your page by clicking on the 'Save' button."), + popover: { fixed: true }, + }, + { + waitFor: 'button[data-action=save]:not(:visible)', + title: _t("Good Job!"), + content: _t("Well done, you created a version of your homepage."), + popover: { next: _t("Continue") }, + }, - { - title: _t("Publish the version"), - content: _t("Now we will publish your version in production."), - popover: { next: _t("Start Tutorial"), end: _t("Skip It") }, - }, + //2. - { - title: _t("Click on Version"), - element: 'a#version-menu-button', - popover: { fixed: true }, - }, + { + title: _t("Publish the version"), + content: _t("Now we will publish your version in production."), + popover: { next: _t("Start Tutorial"), end: _t("Skip It") }, + }, - { - title: _t("Click on Publish Version"), - element: 'a[data-action="publish_version"]:first', - popover: { fixed: true }, - }, + { + title: _t("Click on Version"), + element: 'a#version-menu-button', + popover: { fixed: true }, + }, - { - title: _t("Click on Publish button"), - element: '.modal button.o_confirm', - placement: 'left', - }, + { + title: _t("Click on Publish Version"), + element: 'a[data-action="publish_version"]:first', + popover: { fixed: true }, + }, - { - title: _t("Confirm"), - element: '.modal button.o_confirm[data-dismiss]', - popover: { fixed: true }, - }, + { + title: _t("Click on Publish button"), + element: '.modal button.o_confirm', + placement: 'left', + }, + + { + title: _t("Confirm"), + element: '.modal button.o_confirm[data-dismiss]', + popover: { fixed: true }, + }, - //3. - { - title: _t("Delete the version"), - content: _t("Now we will delete the version you have just published."), - waitNot: '.modal button.o_confirm[data-dismiss]', - popover: { next: _t("Start Tutorial"), end: _t("Skip It") }, - }, + //3. + { + title: _t("Delete the version"), + content: _t("Now we will delete the version you have just published."), + waitNot: '.modal button.o_confirm[data-dismiss]', + popover: { next: _t("Start Tutorial"), end: _t("Skip It") }, + }, - { - title: _t("Click on Version"), - element: 'a#version-menu-button', - popover: { fixed: true }, - }, + { + title: _t("Click on Version"), + element: 'a#version-menu-button', + popover: { fixed: true }, + }, - { - title: _t("Delete Version Test"), - element: 'li > a[data-action="delete_version"]:last', - popover: { fixed: true }, - }, + { + title: _t("Delete Version Test"), + element: 'li > a[data-action="delete_version"]:last', + popover: { fixed: true }, + }, - { - title: _t("Click on delete version button"), - element: '.modal:has(.cancel) button.o_confirm', - popover: { fixed: true }, - }, - - { - title: _t("Confirm"), - element: '.modal:not(:has(.cancel)) button.o_confirm[data-dismiss]', - popover: { fixed: true }, - }, - - { - title: _t("Finish"), - content: _t("Felicitation, now you are able to edit and manage your versions."), - waitNot: '.modal button.o_confirm[data-dismiss]', - }, - - ] - }); - -}()); + { + title: _t("Click on delete version button"), + element: '.modal:has(.cancel) button.o_confirm', + popover: { fixed: true }, + }, + { + title: _t("Confirm"), + element: '.modal:not(:has(.cancel)) button.o_confirm[data-dismiss]', + popover: { fixed: true }, + }, + { + title: _t("Finish"), + content: _t("Felicitation, now you are able to edit and manage your versions."), + waitNot: '.modal button.o_confirm[data-dismiss]', + }, + ] +}); +}); diff --git a/addons/website_version/static/src/js/widget.js b/addons/website_version/static/src/js/widget.js index 350591ddb58..f682b2052f6 100644 --- a/addons/website_version/static/src/js/widget.js +++ b/addons/website_version/static/src/js/widget.js @@ -1,45 +1,43 @@ -(function() { - "use strict"; +odoo.define('website_version.widget', ['web.core','web.form_common', 'web.framework', 'web.pyeval'], function (require) { +"use strict"; - var instance = openerp; - openerp.website_version = instance.website_version || {}; +var core = require('web.core'); +var form_common = require('web.form_common'); +var framework = require('web.framework'); +var pyeval = require('web.pyeval'); - var module = instance.website_version; - var QWeb = instance.web.qweb; - var _t = openerp._t; +var _t = core._t; + +var rtoken = form_common.AbstractField.extend({ + template: 'website_version.GoogleAccess', + start: function() { + var self = this; + this.$el.on('click', 'button.GoogleAccess', function() { + self.allow_google(); + }); + }, + allow_google: function() { + var self = this; + $('button.GoogleAccess').prop('disabled', true); + var context = pyeval.eval('context'); + self.rpc('/website_version/google_access', { + fromurl: window.location.href, + local_context: context + }).done(function(o) { + if (o.status === "need_auth") { + alert(_t("You will be redirected to Google to authorize access to your Analytics Account!")); + framework.redirect(o.url); + } + else if (o.status === "need_config_from_admin"){ + if (confirm(_t("The Google Management API key needs to be configured before you can use it, do you want to do it now?"))) { + self.do_action(o.action); + } + } + }).always(function() { $('button.GoogleAccess').prop('disabled', false); }); + } + +}); +core.form_widget_registry.add('rtoken', rtoken); - instance.website_version.rtoken = instance.web.form.AbstractField.extend({ - template: 'website_version.GoogleAccess', - start: function() { - var self = this; - this.$el.on('click', 'button.GoogleAccess', function() { - self.allow_google(); - }); - }, - allow_google: function() { - var self = this; - $('button.GoogleAccess').prop('disabled', true); - var context = instance.web.pyeval.eval('context'); - self.rpc('/website_version/google_access', { - fromurl: window.location.href, - local_context: context - }).done(function(o) { - if (o.status === "need_auth") { - alert(_t("You will be redirected to Google to authorize access to your Analytics Account!")); - instance.web.redirect(o.url); - } - else if (o.status === "need_config_from_admin"){ - if (confirm(_t("The Google Management API key needs to be configured before you can use it, do you want to do it now?"))) { - self.do_action(o.action); - } - } - }).always(function(o) { $('button.GoogleAccess').prop('disabled', false); }); - } - - }); - instance.web.form.widgets.add('rtoken', 'openerp.website_version.rtoken'); - - -})(); - +});