diff options
| -rw-r--r-- | addons/mass_mailing/report/mailing_trace_report_views.xml | 11 | ||||
| -rw-r--r-- | addons/mass_mailing_sms/report/mailing_trace_report_views.xml | 42 | ||||
| -rw-r--r-- | addons/mass_mailing_sms/views/mailing_mailing_views.xml | 3 | ||||
| -rw-r--r-- | addons/sms/i18n/sms.pot | 12 | ||||
| -rw-r--r-- | addons/sms/static/src/js/fields_sms_widget.js | 13 | ||||
| -rw-r--r-- | addons/sms/wizard/sms_composer_views.xml | 2 | ||||
| -rw-r--r-- | addons/web/static/src/js/fields/basic_fields.js | 9 |
7 files changed, 86 insertions, 6 deletions
diff --git a/addons/mass_mailing/report/mailing_trace_report_views.xml b/addons/mass_mailing/report/mailing_trace_report_views.xml index 8b309b7936e..51c70d9baee 100644 --- a/addons/mass_mailing/report/mailing_trace_report_views.xml +++ b/addons/mass_mailing/report/mailing_trace_report_views.xml @@ -5,12 +5,12 @@ <field name="model">mailing.trace.report</field> <field name="arch" type="xml"> <pivot string="Mass Mailing Statistics" disable_linking="True" sample="1"> - <field name="campaign" type="row"/> + <field name="name" type="row"/> <field name="sent" type="measure"/> <field name="delivered" type="measure"/> <field name="opened" type="measure"/> <field name="bounced" type="measure"/> - <field name="replied" type="measure"/> + <field name="replied" type="measure" invisible="0"/> <field name="clicked" type="measure"/> </pivot> </field> @@ -21,8 +21,9 @@ <field name="model">mailing.trace.report</field> <field name="arch" type="xml"> <graph string="Mass Mailing Statistics" sample="1" disable_linking="1"> - <field name="campaign"/> + <field name="name"/> <field name="sent" type="measure"/> + <field name="replied" invisible="0"/> </graph> </field> </record> @@ -39,8 +40,8 @@ <field name="scheduled_date"/> </group> <group expand="1" string="Group By..."> - <filter string="Mass Mailing Campaign" name="mass_mailing_campaign" - domain="[]" context="{'group_by':'campaign'}"/> + <filter string="Mass Mailing Campaign" domain="[]" name="mass_mailing_campaign" + context="{'group_by':'campaign'}" groups="mass_mailing.group_mass_mailing_campaign"/> <filter string="State" domain="[]" name="state" context="{'group_by':'state'}"/> <filter string="Sent By" domain="[]" name="sent_by" diff --git a/addons/mass_mailing_sms/report/mailing_trace_report_views.xml b/addons/mass_mailing_sms/report/mailing_trace_report_views.xml index a3a56aa25e2..84684aca456 100644 --- a/addons/mass_mailing_sms/report/mailing_trace_report_views.xml +++ b/addons/mass_mailing_sms/report/mailing_trace_report_views.xml @@ -1,5 +1,33 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> + <record id="mailing_trace_report_sms_view_pivot" model="ir.ui.view"> + <field name="name">mailing.sms.trace.report.view.pivot</field> + <field name="model">mailing.trace.report</field> + <field name="inherit_id" ref="mass_mailing.mailing_trace_report_view_pivot"/> + <field name="priority" eval="50"/> + <field name="mode">primary</field> + <field name="type">pivot</field> + <field name="arch" type="xml"> + <xpath expr="//field[@name='replied']" position="attributes"> + <attribute name="invisible">1</attribute> + </xpath> + </field> + </record> + + <record id="mailing_trace_report_sms_view_graph" model="ir.ui.view"> + <field name="name">mailing.sms.trace.report.view.graph</field> + <field name="model">mailing.trace.report</field> + <field name="inherit_id" ref="mass_mailing.mailing_trace_report_view_graph"/> + <field name="priority" eval="50"/> + <field name="mode">primary</field> + <field name="type">graph</field> + <field name="arch" type="xml"> + <xpath expr="//field[@name='replied']" position="attributes"> + <attribute name="invisible">1</attribute> + </xpath> + </field> + </record> + <!-- Actions and Menuitems --> <record id="mailing_trace_report_action_sms" model="ir.actions.act_window"> <field name="name">SMS Marketing Analysis</field> @@ -14,6 +42,20 @@ </field> </record> + <record id="mailing_trace_report_action_sms_view_graph" model="ir.actions.act_window.view"> + <field name="sequence">0</field> + <field name="view_mode">graph</field> + <field name="act_window_id" ref="mailing_trace_report_action_sms"/> + <field name="view_id" ref="mailing_trace_report_sms_view_graph"/> + </record> + + <record id="mailing_trace_report_action_sms_view_pivot" model="ir.actions.act_window.view"> + <field name="sequence">1</field> + <field name="view_mode">pivot</field> + <field name="act_window_id" ref="mailing_trace_report_action_sms"/> + <field name="view_id" ref="mailing_trace_report_sms_view_pivot"/> + </record> + <!-- SMS Marketing / Reporting --> <record id="mass_mailing_sms_menu_reporting" model="ir.ui.menu"> <field name="action" ref="mailing_trace_report_action_sms"/> diff --git a/addons/mass_mailing_sms/views/mailing_mailing_views.xml b/addons/mass_mailing_sms/views/mailing_mailing_views.xml index 570198797b9..c919400d1db 100644 --- a/addons/mass_mailing_sms/views/mailing_mailing_views.xml +++ b/addons/mass_mailing_sms/views/mailing_mailing_views.xml @@ -102,6 +102,9 @@ <xpath expr="//field[@name='subject']" position="after"> <field name="sms_subject" string="Title" attrs="{'invisible': [('mailing_type', '!=', 'sms')], 'readonly': [('state', 'in', ('sending', 'done'))], 'required': [('mailing_type', '=', 'sms')]}"/> </xpath> + <xpath expr="//field[@name='preview']" position="attributes"> + <attribute name="attrs">{'readonly': [('state', 'in', ('sending', 'done'))], 'invisible': [('mailing_type', '!=', 'mail')]}</attribute> + </xpath> <xpath expr="//page[@name='mail_body']" position="attributes"> <attribute name="attrs">{'invisible': [('mailing_type', '!=', 'mail')]}</attribute> </xpath> diff --git a/addons/sms/i18n/sms.pot b/addons/sms/i18n/sms.pot index 1277631618f..0ce2c1f3c62 100644 --- a/addons/sms/i18n/sms.pot +++ b/addons/sms/i18n/sms.pot @@ -1246,11 +1246,23 @@ msgid "You do not have access to the message and/or related document." msgstr "" #. module: sms +#. openerp-web +#: code:addons/sms/static/src/js/fields_sms_widget.js:0 +#, python-format +msgid "Your SMS Text Message must include at least one non-whitespace character" +msgstr "" + +#. module: sms #: model_terms:ir.ui.view,arch_db:sms.sms_composer_view_form msgid "are invalid." msgstr "" #. module: sms +#: model_terms:ir.ui.view,arch_db:sms.sms_composer_view_form +msgid "e.g. +1 415 555 0100" +msgstr "" + +#. module: sms #: model_terms:ir.ui.view,arch_db:sms.sms_template_view_form msgid "e.g. en_US or ${object.partner_id.lang}" msgstr "" diff --git a/addons/sms/static/src/js/fields_sms_widget.js b/addons/sms/static/src/js/fields_sms_widget.js index d438f6c90bc..5a52d68e4ba 100644 --- a/addons/sms/static/src/js/fields_sms_widget.js +++ b/addons/sms/static/src/js/fields_sms_widget.js @@ -151,6 +151,19 @@ var SmsWidget = FieldTextEmojis.extend({ * @override * @private */ + _onBlur: function () { + var content = this._getValue(); + if( !content.trim().length && content.length > 0) { + this.do_warn(_t("Your SMS Text Message must include at least one non-whitespace character")); + this.$input.val(content.trim()); + this._updateSMSInfo(); + } + }, + + /** + * @override + * @private + */ _onChange: function () { this._super.apply(this, arguments); this._updateSMSInfo(); diff --git a/addons/sms/wizard/sms_composer_views.xml b/addons/sms/wizard/sms_composer_views.xml index b1be27ca32b..3ef5820bb8a 100644 --- a/addons/sms/wizard/sms_composer_views.xml +++ b/addons/sms/wizard/sms_composer_views.xml @@ -45,7 +45,7 @@ attrs="{'invisible': [('comment_single_recipient', '=', False)]}"/> <div attrs="{'invisible': [('comment_single_recipient', '=', False)]}"> <field name="recipient_single_description" class="oe_inline"/> - <field name="recipient_single_number_itf" class="oe_inline" nolabel="1" options="{'onchange_on_keydown': True}"/> + <field name="recipient_single_number_itf" class="oe_inline" nolabel="1" options="{'onchange_on_keydown': True}" placeholder="e.g. +1 415 555 0100"/> </div> <field name="body" widget="sms_widget"/> diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js index 181e4b1efd8..0ca1e27de4e 100644 --- a/addons/web/static/src/js/fields/basic_fields.js +++ b/addons/web/static/src/js/fields/basic_fields.js @@ -160,6 +160,14 @@ var DebouncedField = AbstractField.extend({ * @returns {*} */ _getValue: function () {}, + /** + * Should make an action on lost focus. + * + * @abstract + * @private + * @returns {*} + */ + _onBlur: function () {}, }); var InputField = DebouncedField.extend({ @@ -169,6 +177,7 @@ var InputField = DebouncedField.extend({ events: _.extend({}, DebouncedField.prototype.events, { 'input': '_onInput', 'change': '_onChange', + 'blur' : '_onBlur', }), /** |
