summaryrefslogtreecommitdiff
path: root/addons/mass_mailing/static/src/js
diff options
context:
space:
mode:
authorGéry Debongnie <ged@odoo.com>2015-03-10 08:48:09 +0100
committerGéry Debongnie <ged@odoo.com>2015-03-18 09:09:22 +0100
commit81333ade84f8e422599bcf82ded414ea21ea0f88 (patch)
tree5f6e768f70c87d14441a3bedf73996188a15eba5 /addons/mass_mailing/static/src/js
parent5e6171bb6f43a2e0c35152fe456125ec8e1fd77e (diff)
[REF] mass_mailing: update to the new module system
Diffstat (limited to 'addons/mass_mailing/static/src/js')
-rw-r--r--addons/mass_mailing/static/src/js/mass_mailing.js44
-rw-r--r--addons/mass_mailing/static/src/js/website_mass_mailing.editor.js195
-rw-r--r--addons/mass_mailing/static/src/js/website_mass_mailing.js266
3 files changed, 260 insertions, 245 deletions
diff --git a/addons/mass_mailing/static/src/js/mass_mailing.js b/addons/mass_mailing/static/src/js/mass_mailing.js
index d2d3ff52bf6..ec03550d1fc 100644
--- a/addons/mass_mailing/static/src/js/mass_mailing.js
+++ b/addons/mass_mailing/static/src/js/mass_mailing.js
@@ -1,22 +1,28 @@
-openerp.mass_mailing = function (instance) {
- var _t = instance.web._t;
+odoo.define('mass_mailing.mass_mailing', ['web.core', 'web_kanban.common', 'web_kanban.KanbanView'], function (require) {
- openerp.web_kanban.KanbanRecord.include({
- on_card_clicked: function (event) {
- if (this.view.dataset.model === 'mail.mass_mailing.campaign') {
- this.$('.oe_mailings').click();
- } else {
- this._super.apply(this, arguments);
- }
- },
- });
+var core = require('web.core');
+var common = require('web_kanban.common');
+var KanbanView = require('web_kanban.KanbanView');
- openerp.web_kanban.KanbanView.include({
- on_groups_started: function() {
+var _t = core._t;
+
+common.KanbanRecord.include({
+ on_card_clicked: function (event) {
+ if (this.view.dataset.model === 'mail.mass_mailing.campaign') {
+ this.$('.oe_mailings').click();
+ } else {
this._super.apply(this, arguments);
- if (this.dataset.model === 'mail.mass_mailing') {
- this.$el.find('.oe_kanban_draghandle').removeClass('oe_kanban_draghandle');
- }
- },
- });
-};
+ }
+ },
+});
+
+KanbanView.include({
+ on_groups_started: function() {
+ this._super.apply(this, arguments);
+ if (this.dataset.model === 'mail.mass_mailing') {
+ this.$el.find('.oe_kanban_draghandle').removeClass('oe_kanban_draghandle');
+ }
+ },
+});
+
+});
diff --git a/addons/mass_mailing/static/src/js/website_mass_mailing.editor.js b/addons/mass_mailing/static/src/js/website_mass_mailing.editor.js
index 675540bf044..4a4188a8401 100644
--- a/addons/mass_mailing/static/src/js/website_mass_mailing.editor.js
+++ b/addons/mass_mailing/static/src/js/website_mass_mailing.editor.js
@@ -1,104 +1,109 @@
-(function () {
- 'use strict';
+odoo.define('website_mass_mailing.editor', ['web.core', 'website.editor', 'website.snippet.editor', 'website.website'], function (require) {
+'use strict';
- var website = openerp.website;
- var _t = openerp._t;
+var core = require('web.core');
+var editor = require('website.editor');
+var snippet_editor = require('website.snippet.editor');
+var website = require('website.website');
- website.snippet.options.mailing_list_subscribe = website.snippet.Option.extend({
- choose_mailing_list: function (type, value) {
- var self = this;
- if (type !== "click") return;
- return website.prompt({
- id: "editor_new_mailing_list_subscribe_button",
- window_title: _t("Add a Newsletter Subscribe Button"),
- select: _t("Newsletter"),
- init: function (field) {
- return website.session.model('mail.mass_mailing.list')
- .call('name_search', ['', []], { context: website.get_context() });
- },
- }).then(function (mailing_list_id) {
- self.$target.attr("data-list-id", mailing_list_id);
- });
- },
- drop_and_build_snippet: function() {
- var self = this;
- this._super();
- this.choose_mailing_list('click').fail(function () {
- self.editor.on_remove($.Event( "click" ));
- });
- },
- clean_for_save: function () {
- this.$target.addClass("hidden");
- },
- });
+var _t = core._t;
- website.snippet.options.newsletter_popup = website.snippet.Option.extend({
- select_mailing_list: function (type) {
- var self = this;
- if (type !== "click") return;
- return website.prompt({
- id: "editor_new_mailing_list_subscribe_popup",
- window_title: _t("Add a Newsletter Subscribe Popup"),
- select: _t("Newsletter"),
- init: function () {
- return website.session.model('mail.mass_mailing.list')
- .call('name_search', [], { context: website.get_context() });
- },
- }).then(function (mailing_list_id) {
- openerp.jsonRpc('/web/dataset/call', 'call', {
- model: 'mail.mass_mailing.list',
- method: 'read',
- args: [[parseInt(mailing_list_id)], ['popup_content'], website.get_context()],
- }).then(function (data) {
- self.$target.find(".o_popup_content_dev").empty();
- if (data && data[0].popup_content) {
- $(data[0].popup_content).appendTo(self.$target.find(".o_popup_content_dev"));
- }
- });
- self.$target.attr("data-list-id", mailing_list_id);
- });
- },
- drop_and_build_snippet: function() {
- var self = this;
- this._super();
- this.select_mailing_list('click').fail(function () {
- self.editor.on_remove($.Event( "click" ));
- });
- },
- });
+snippet_editor.options.mailing_list_subscribe = snippet_editor.Option.extend({
+ choose_mailing_list: function (type, value) {
+ var self = this;
+ if (type !== "click") return;
+ return website.prompt({
+ id: "editor_new_mailing_list_subscribe_button",
+ window_title: _t("Add a Newsletter Subscribe Button"),
+ select: _t("Newsletter"),
+ init: function (field) {
+ return website.session.model('mail.mass_mailing.list')
+ .call('name_search', ['', []], { context: website.get_context() });
+ },
+ }).then(function (mailing_list_id) {
+ self.$target.attr("data-list-id", mailing_list_id);
+ });
+ },
+ drop_and_build_snippet: function() {
+ var self = this;
+ this._super();
+ this.choose_mailing_list('click').fail(function () {
+ self.editor.on_remove($.Event( "click" ));
+ });
+ },
+ clean_for_save: function () {
+ this.$target.addClass("hidden");
+ },
+});
- website.EditorBar.include({
- edit: function () {
- this._super();
- $('body').on('click','#edit_dialog',_.bind(this.edit_dialog, this.rte.editor));
+website.snippet.options.newsletter_popup = website.snippet.Option.extend({
+ select_mailing_list: function (type) {
+ var self = this;
+ if (type !== "click") return;
+ return website.prompt({
+ id: "editor_new_mailing_list_subscribe_popup",
+ window_title: _t("Add a Newsletter Subscribe Popup"),
+ select: _t("Newsletter"),
+ init: function () {
+ return website.session.model('mail.mass_mailing.list')
+ .call('name_search', [], { context: website.get_context() });
},
- save : function() {
- var $target = $('#wrapwrap').find('#o_newsletter_popup');
- if ($target && $target.length) {
- $target.modal('hide');
- $target.css("display", "none");
- $('.o_popup_bounce_small').show();
- if (!$target.find('.o_popup_content_dev').length) {
- $target.find('.o_popup_modal_body').prepend($('<div class="o_popup_content_dev" data-oe-placeholder="Type Here ..."></div>'));
- }
- var content = $('#wrapwrap .o_popup_content_dev').html();
- var newsletter_id = $target.parent().attr('data-list-id');
- openerp.jsonRpc('/web/dataset/call', 'call', {
- model: 'mail.mass_mailing.list',
- method: 'write',
- args: [parseInt(newsletter_id),
- {'popup_content':content},
- website.get_context()],
- });
+ }).then(function (mailing_list_id) {
+ openerp.jsonRpc('/web/dataset/call', 'call', {
+ model: 'mail.mass_mailing.list',
+ method: 'read',
+ args: [[parseInt(mailing_list_id)], ['popup_content'], website.get_context()],
+ }).then(function (data) {
+ self.$target.find(".o_popup_content_dev").empty();
+ if (data && data[0].popup_content) {
+ $(data[0].popup_content).appendTo(self.$target.find(".o_popup_content_dev"));
}
- return this._super();
- },
- edit_dialog : function() {
- $('#wrapwrap').find('#o_newsletter_popup').modal('show');
- $('.o_popup_bounce_small').hide();
- $('.modal-backdrop').css("z-index", "0");
- },
+ });
+ self.$target.attr("data-list-id", mailing_list_id);
+ });
+ },
+ drop_and_build_snippet: function() {
+ var self = this;
+ this._super();
+ this.select_mailing_list('click').fail(function () {
+ self.editor.on_remove($.Event( "click" ));
});
-})();
+ },
+});
+
+editor.EditorBar.include({
+ edit: function () {
+ this._super();
+ $('body').on('click','#edit_dialog',_.bind(this.edit_dialog, this.rte.editor));
+ },
+ save : function() {
+ var $target = $('#wrapwrap').find('#o_newsletter_popup');
+ if ($target && $target.length) {
+ $target.modal('hide');
+ $target.css("display", "none");
+ $('.o_popup_bounce_small').show();
+ if (!$target.find('.o_popup_content_dev').length) {
+ $target.find('.o_popup_modal_body').prepend($('<div class="o_popup_content_dev" data-oe-placeholder="Type Here ..."></div>'));
+ }
+ var content = $('#wrapwrap .o_popup_content_dev').html();
+ var newsletter_id = $target.parent().attr('data-list-id');
+ openerp.jsonRpc('/web/dataset/call', 'call', {
+ model: 'mail.mass_mailing.list',
+ method: 'write',
+ args: [parseInt(newsletter_id),
+ {'popup_content':content},
+ website.get_context()],
+ });
+ }
+ return this._super();
+ },
+ edit_dialog : function() {
+ $('#wrapwrap').find('#o_newsletter_popup').modal('show');
+ $('.o_popup_bounce_small').hide();
+ $('.modal-backdrop').css("z-index", "0");
+ },
+});
+
+});
diff --git a/addons/mass_mailing/static/src/js/website_mass_mailing.js b/addons/mass_mailing/static/src/js/website_mass_mailing.js
index c11a109b733..3d7353dbeb2 100644
--- a/addons/mass_mailing/static/src/js/website_mass_mailing.js
+++ b/addons/mass_mailing/static/src/js/website_mass_mailing.js
@@ -1,144 +1,148 @@
-(function () {
- 'use strict';
-
- var website = openerp.website;
-
- website.snippet.animationRegistry.subscribe = website.snippet.Animation.extend({
- selector: ".js_subscribe",
- start: function (editable_mode) {
- var self = this;
-
- // set value and display button
- self.$target.find("input").removeClass("hidden");
- openerp.jsonRpc('/website_mass_mailing/is_subscriber', 'call', {
- list_id: this.$target.data('list-id'),
- }).always(function (data) {
- self.$target.find('input.js_subscribe_email')
- .val(data.email ? data.email : "")
- .attr("disabled", data.is_subscriber && data.email.length ? "disabled" : false);
- self.$target.attr("data-subscribe", data.is_subscriber ? 'on' : 'off');
- self.$target.find('a.js_subscribe_btn')
- .attr("disabled", data.is_subscriber && data.email.length ? "disabled" : false);
- self.$target.removeClass("hidden");
- self.$target.find('.js_subscribe_btn').toggleClass('hidden', !!data.is_subscriber);
- self.$target.find('.js_subscribed_btn').toggleClass('hidden', !data.is_subscriber);
+odoo.define('mass_mailing.website_integration', ['web.ajax', 'web.utils', 'website.snippets.animation', 'website.website'], function (require) {
+"use strict";
+
+var ajax = require('web.ajax');
+var utils = require('web.utils');
+var animation = require('website.snippets.animation');
+var website = require('website.website');
+
+animation.registry.subscribe = animation.Animation.extend({
+ selector: ".js_subscribe",
+ start: function (editable_mode) {
+ var self = this;
+
+ // set value and display button
+ self.$target.find("input").removeClass("hidden");
+ ajax.jsonRpc('/website_mass_mailing/is_subscriber', 'call', {
+ list_id: this.$target.data('list-id'),
+ }).always(function (data) {
+ self.$target.find('input.js_subscribe_email')
+ .val(data.email ? data.email : "")
+ .attr("disabled", data.is_subscriber && data.email.length ? "disabled" : false);
+ self.$target.attr("data-subscribe", data.is_subscriber ? 'on' : 'off');
+ self.$target.find('a.js_subscribe_btn')
+ .attr("disabled", data.is_subscriber && data.email.length ? "disabled" : false);
+ self.$target.removeClass("hidden");
+ self.$target.find('.js_subscribe_btn').toggleClass('hidden', !!data.is_subscriber);
+ self.$target.find('.js_subscribed_btn').toggleClass('hidden', !data.is_subscriber);
+ });
+
+ // not if editable mode to allow designer to edit alert field
+ if (!editable_mode) {
+ $('.js_subscribe > .alert').addClass("hidden");
+ $('.js_subscribe > .input-group-btn.hidden').removeClass("hidden");
+ this.$target.find('.js_subscribe_btn').on('click', function (event) {
+ event.preventDefault();
+ self.on_click();
});
+ }
+ },
+ on_click: function () {
+ var self = this;
+ var $email = this.$target.find(".js_subscribe_email:visible");
+
+ if ($email.length && !$email.val().match(/.+@.+/)) {
+ this.$target.addClass('has-error');
+ return false;
+ }
+ this.$target.removeClass('has-error');
+
+ ajax.jsonRpc('/website_mass_mailing/subscribe', 'call', {
+ 'list_id': this.$target.data('list-id'),
+ 'email': $email.length ? $email.val() : false,
+ }).then(function (subscribe) {
+ self.$target.find(".js_subscribe_email, .input-group-btn").addClass("hidden");
+ self.$target.find(".alert").removeClass("hidden");
+ self.$target.find('input.js_subscribe_email').attr("disabled", subscribe ? "disabled" : false);
+ self.$target.attr("data-subscribe", subscribe ? 'on' : 'off');
+ });
+ },
+});
+
+animation.registry.newsletter_popup = animation.Animation.extend({
+ selector: ".o_newsletter_popup",
+ start: function (editable_mode) {
+ var self = this;
+ var popupcontent = self.$target.find(".o_popup_content_dev").empty();
+
+ ajax.jsonRpc('/website_mass_mailing/get_content', 'call', {
+ newsletter_id: self.$target.data('list-id')
+ }).then(function (data) {
+ if (data.content) {
+ $('<div></div>').append(data.content).appendTo(popupcontent);
+ }
+ self.$target.find('input.popup_subscribe_email').val(data.email || "");
+ self.redirect_url = data.redirect_url;
+ if (!editable_mode && !data.is_subscriber) {
+ $(document).on('mouseleave', _.bind(self.show_banner, self));
- // not if editable mode to allow designer to edit alert field
- if (!editable_mode) {
- $('.js_subscribe > .alert').addClass("hidden");
- $('.js_subscribe > .input-group-btn.hidden').removeClass("hidden");
- this.$target.find('.js_subscribe_btn').on('click', function (event) {
+ self.$target.find('.popup_subscribe_btn').on('click', function (event) {
event.preventDefault();
- self.on_click();
+ self.on_click_subscribe();
});
+ } else { $(document).off('mouseleave'); }
+ });
+ },
+ on_click_subscribe: function () {
+ var self = this;
+ var $email = self.$target.find(".popup_subscribe_email:visible");
+
+ if ($email.length && !$email.val().match(/.+@.+/)) {
+ self.$target.addClass('has-error');
+ return false;
+ }
+ self.$target.removeClass('has-error');
+
+ ajax.jsonRpc('/website_mass_mailing/subscribe', 'call', {
+ 'list_id': self.$target.data('list-id'),
+ 'email': $email.length ? $email.val() : false
+ }).then(function () {
+ self.$target.find('#o_newsletter_popup').modal('hide');
+ $(document).off('mouseleave');
+ if (self.redirect_url) {
+ if (_.contains(self.redirect_url.split('/'), window.location.host) || self.redirect_url.indexOf('/')=== 0) {
+ window.location.href = self.redirect_url;
+ } else { window.open(self.redirect_url, '_blank'); }
}
- },
- on_click: function () {
- var self = this;
- var $email = this.$target.find(".js_subscribe_email:visible");
-
- if ($email.length && !$email.val().match(/.+@.+/)) {
- this.$target.addClass('has-error');
- return false;
- }
- this.$target.removeClass('has-error');
-
- openerp.jsonRpc('/website_mass_mailing/subscribe', 'call', {
- 'list_id': this.$target.data('list-id'),
- 'email': $email.length ? $email.val() : false,
- }).then(function (subscribe) {
- self.$target.find(".js_subscribe_email, .input-group-btn").addClass("hidden");
- self.$target.find(".alert").removeClass("hidden");
- self.$target.find('input.js_subscribe_email').attr("disabled", subscribe ? "disabled" : false);
- self.$target.attr("data-subscribe", subscribe ? 'on' : 'off');
- });
- },
- });
-
- website.snippet.animationRegistry.newsletter_popup = website.snippet.Animation.extend({
- selector: ".o_newsletter_popup",
- start: function (editable_mode) {
- var self = this;
- var popupcontent = self.$target.find(".o_popup_content_dev").empty();
-
- openerp.jsonRpc('/website_mass_mailing/get_content', 'call', {
- newsletter_id: self.$target.data('list-id')
- }).then(function (data) {
- if (data.content) {
- $('<div></div>').append(data.content).appendTo(popupcontent);
- }
- self.$target.find('input.popup_subscribe_email').val(data.email || "");
- self.redirect_url = data.redirect_url;
- if (!editable_mode && !data.is_subscriber) {
- $(document).on('mouseleave', _.bind(self.show_banner, self));
-
- self.$target.find('.popup_subscribe_btn').on('click', function (event) {
- event.preventDefault();
- self.on_click_subscribe();
- });
- } else { $(document).off('mouseleave'); }
- });
- },
- on_click_subscribe: function () {
- var self = this;
- var $email = self.$target.find(".popup_subscribe_email:visible");
-
- if ($email.length && !$email.val().match(/.+@.+/)) {
- self.$target.addClass('has-error');
- return false;
- }
- self.$target.removeClass('has-error');
-
- openerp.jsonRpc('/website_mass_mailing/subscribe', 'call', {
- 'list_id': self.$target.data('list-id'),
- 'email': $email.length ? $email.val() : false
- }).then(function (subscribe) {
- self.$target.find('#o_newsletter_popup').modal('hide');
- $(document).off('mouseleave');
- if (self.redirect_url) {
- if (_.contains(self.redirect_url.split('/'), window.location.host) || self.redirect_url.indexOf('/')== 0) {
- window.location.href = self.redirect_url;
- } else { window.open(self.redirect_url, '_blank'); }
- }
+ });
+ },
+ show_banner: function() {
+ var self = this;
+ if (!utils.get_cookie("newsletter-popup-"+ self.$target.data('list-id')) && self.$target) {
+ $('#o_newsletter_popup:first').modal('show').css({
+ 'margin-top': '70px',
+ 'position': 'fixed'
});
- },
- show_banner: function() {
- var self = this;
- if (!openerp.get_cookie("newsletter-popup-"+ self.$target.data('list-id')) && self.$target) {
- $('#o_newsletter_popup:first').modal('show').css({
- 'margin-top': '70px',
- 'position': 'fixed'
- });
- document.cookie = "newsletter-popup-"+ self.$target.data('list-id') +"=" + true + ";path=/";
- }
+ document.cookie = "newsletter-popup-"+ self.$target.data('list-id') +"=" + true + ";path=/";
}
- });
+ }
+});
- openerp.website.if_dom_contains('div.o_unsubscribe_form', function() {
- $('#unsubscribe_form').on('submit', function(e) {
- e.preventDefault();
+website.if_dom_contains('div.o_unsubscribe_form', function() {
+ $('#unsubscribe_form').on('submit', function(e) {
+ e.preventDefault();
- var email = $("input[name='email']").val();
- var mailing_id = parseInt($("input[name='mailing_id']").val());
+ var email = $("input[name='email']").val();
+ var mailing_id = parseInt($("input[name='mailing_id']").val());
- var checked_ids = [];
- $("input[type='checkbox']:checked").each(function(i){
- checked_ids[i] = parseInt($(this).val());
- });
-
- var unchecked_ids = [];
- $("input[type='checkbox']:not(:checked)").each(function(i){
- unchecked_ids[i] = parseInt($(this).val());
- });
+ var checked_ids = [];
+ $("input[type='checkbox']:checked").each(function(i){
+ checked_ids[i] = parseInt($(this).val());
+ });
- openerp.jsonRpc('/mail/mailing/unsubscribe', 'call', {'opt_in_ids': checked_ids, 'opt_out_ids': unchecked_ids, 'email': email, 'mailing_id': mailing_id})
- .then(function(result) {
- $('.alert-info').html('Your changes has been saved.').removeClass('alert-info').addClass('alert-success');
- })
- .fail(function() {
- $('.alert-info').html('You changes has not been saved, try again later.').removeClass('alert-info').addClass('alert-warning');
- });
+ var unchecked_ids = [];
+ $("input[type='checkbox']:not(:checked)").each(function(i){
+ unchecked_ids[i] = parseInt($(this).val());
});
+
+ ajax.jsonRpc('/mail/mailing/unsubscribe', 'call', {'opt_in_ids': checked_ids, 'opt_out_ids': unchecked_ids, 'email': email, 'mailing_id': mailing_id})
+ .then(function() {
+ $('.alert-info').html('Your changes has been saved.').removeClass('alert-info').addClass('alert-success');
+ })
+ .fail(function() {
+ $('.alert-info').html('You changes has not been saved, try again later.').removeClass('alert-info').addClass('alert-warning');
+ });
});
-})();
+});
+
+});