summaryrefslogtreecommitdiff
path: root/addons/website/static/src/js/menu/translate.js
diff options
context:
space:
mode:
authorqsm-odoo <qsm@odoo.com>2017-06-07 17:45:15 +0200
committerqsm-odoo <qsm@odoo.com>2017-08-16 10:59:39 +0200
commit4f925af06fd3cebfcfb56eb947ab68c8a2ca4490 (patch)
treeb13bd049b6b3e7bbdfb537d19b53c95fc4025ea5 /addons/website/static/src/js/menu/translate.js
parentf205bfcd4ddcf3f1d8676ee87ee0b29941bd6773 (diff)
[MOV] web_editor, website: reorganize files
Diffstat (limited to 'addons/website/static/src/js/menu/translate.js')
-rw-r--r--addons/website/static/src/js/menu/translate.js104
1 files changed, 104 insertions, 0 deletions
diff --git a/addons/website/static/src/js/menu/translate.js b/addons/website/static/src/js/menu/translate.js
new file mode 100644
index 00000000000..c9b7de4ed8b
--- /dev/null
+++ b/addons/website/static/src/js/menu/translate.js
@@ -0,0 +1,104 @@
+odoo.define('website.translator', function (require) {
+'use strict';
+
+var core = require('web.core');
+var ajax = require('web.ajax');
+var Widget = require('web.Widget');
+var base = require('web_editor.base');
+var translate = require('web_editor.translate');
+var website = require('website.website');
+var local_storage = require('web.local_storage');
+var utils = require('web.utils');
+
+var qweb = core.qweb;
+
+if (!translate.translatable) {
+ return;
+}
+
+
+website.TopBar.include({
+ events: _.extend({}, website.TopBar.prototype.events, {
+ 'click [data-action="edit_master"]': 'edit_master',
+ 'click [data-action="translate"]': 'translate',
+ }),
+ translate: function (ev) {
+ ev.preventDefault();
+ if (translate.edit_translations) {
+ translate.instance.edit();
+ } else {
+ location.search += '&edit_translations';
+ }
+ },
+ edit_master: function (ev) {
+ ev.preventDefault();
+
+ var lang = '/' + utils.get_cookie('frontend_lang');
+
+ var current = document.createElement('a');
+ current.href = window.location.toString();
+ current.search += (current.search ? '&' : '?') + 'enable_editor=1';
+ if (current.pathname.indexOf(lang) === 0) {
+ current.pathname = current.pathname.replace(lang, '');
+ }
+
+ var link = document.createElement('a');
+ link.href = '/website/lang/default';
+ link.search += (link.search ? '&' : '?') + 'r=' + encodeURIComponent(current.pathname + current.search + current.hash);
+
+ window.location = link.href;
+ },
+});
+
+
+if (!translate.edit_translations) {
+ return;
+}
+
+ajax.loadXML('/website/static/src/xml/website.translator.xml', qweb);
+
+var nodialog = 'website_translator_nodialog';
+
+var Translate = translate.Class.include({
+ onTranslateReady: function () {
+ if(this.gengo_translate) {
+ this.translation_gengo_display();
+ }
+ this._super();
+ },
+ edit: function () {
+ $("#oe_main_menu_navbar").hide();
+ if (!local_storage.getItem(nodialog)) {
+ var dialog = new TranslatorDialog();
+ dialog.appendTo($(document.body));
+ dialog.on('activate', this, function () {
+ if (dialog.$('input[name=do_not_show]').prop('checked')) {
+ local_storage.removeItem(nodialog);
+ } else {
+ local_storage.setItem(nodialog, true);
+ }
+ dialog.$el.modal('hide');
+ });
+ }
+ return this._super();
+ },
+ cancel: function () {
+ $("#oe_main_menu_navbar").show();
+ return this._super();
+ }
+});
+
+var TranslatorDialog = Widget.extend({
+ events: _.extend({}, website.TopBar.prototype.events, {
+ 'hidden.bs.modal': 'destroy',
+ 'click button[data-action=activate]': function (ev) {
+ this.trigger('activate');
+ },
+ }),
+ template: 'website.TranslatorDialog',
+ start: function () {
+ this.$el.modal();
+ },
+});
+
+});