diff options
| author | Thibault Delavallée <tde@odoo.com> | 2019-06-27 16:44:04 +0000 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2019-07-12 14:54:11 +0000 |
| commit | 14ccc770bba873f591a0a556d2c28e36ccc78d1e (patch) | |
| tree | b3518860b5eb3346e0d8b81066a1cbc0e8d12af5 /addons/sms/static/src/js/sms_widget.js | |
| parent | 9ad7a88a08ceccc3665acd8972ac47614205bf0e (diff) | |
[IMP] sms: improve SMS widget
Related to task 1922163
Linked to PR #33510
Co-Authored-By: Thibault Delavallee <tde@odoo.com>
Co-Authored-By: Pierre Rousseau <pro@odoo.com>
Diffstat (limited to 'addons/sms/static/src/js/sms_widget.js')
| -rw-r--r-- | addons/sms/static/src/js/sms_widget.js | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/addons/sms/static/src/js/sms_widget.js b/addons/sms/static/src/js/sms_widget.js deleted file mode 100644 index cbb0dda05b9..00000000000 --- a/addons/sms/static/src/js/sms_widget.js +++ /dev/null @@ -1,124 +0,0 @@ -odoo.define('sms.sms_widget', function (require) { -"use strict"; - -var basicFields = require('web.basic_fields'); -var core = require('web.core'); -var fieldRegistry = require('web.field_registry'); -var dom = require('web.dom'); -var framework = require('web.framework'); - - -var FieldText = basicFields.FieldText; -var InputField = basicFields.InputField; -var QWeb = core.qweb; - -var _t = core._t -/** - * SmsWidget is a widget to display a textarea (the body) and a text representing - * the number of SMS and the number of characters. This text is computed every - * time the user changes the body. - */ -var SmsWidget = InputField.extend({ - /** - * @constructor - */ - init: function () { - this._super.apply(this, arguments); - this.nbrChar = 0; - this.nbrSMS = 0; - this.encoding = "GSM7"; - this.tagName = 'div'; - }, - - //-------------------------------------------------------------------------- - // Private - //-------------------------------------------------------------------------- - - /** - * Compute the number of characters and sms - * @private - */ - _compute: function () { - var content = this._getValue(); - this.encoding = this._extractEncoding(content); - this.nbrChar = content.length; - this.nbrChar += (content.match(/\n/g) || []).length; - this.nbrSMS = this._countSMS(this.nbrChar, this.encoding); - this._renderSMS(); - }, - /** - * Count the number of SMS of the content - * @private - * @returns {integer} Number of SMS - */ - _countSMS: function () { - if (this.nbrChar === 0) { - return 0; - } - if (this.encoding === 'UNICODE') { - if (this.nbrChar <= 70) { - return 1; - } - return Math.ceil(this.nbrChar / 67); - } - if (this.nbrChar <= 160) { - return 1; - } - return Math.ceil(this.nbrChar / 153); - }, - /** - * @private - * @override - */ - _renderEdit: function () { - this.$el.empty(); - this._prepareInput($('<textarea/>')).appendTo(this.$el); - this.$el.append($(QWeb.render("sms.sms_count", {}))); - this._compute(); - }, - /** - * Extract the encoding depending on the characters in the content - * @private - * @param {String} content Content of the SMS - * @returns {String} Encoding of the content (GSM7 or UNICODE) - */ - _extractEncoding: function (content) { - if (String(content).match(RegExp("^[@£$¥èéùìòÇ\\nØø\\rÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ !\\\"#¤%&'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqrstuvwxyzäöñüà]*$"))) { - return 'GSM7'; - } - return 'UNICODE'; - }, - /** - * Render the number of characters, sms and the encoding. - * @private - */ - _renderSMS: function () { - this.$('.o_sms_count').text(_.str.sprintf(_t('%s chars, fits in %s SMS (%s) '), this.nbrChar, this.nbrSMS, this.encoding)); - }, - - //-------------------------------------------------------------------------- - // Handlers - //-------------------------------------------------------------------------- - - /** - * @override - * @private - */ - _onChange: function () { - this._super.apply(this, arguments); - this._compute(); - }, - /** - * @override - * @private - */ - _onInput: function () { - this._super.apply(this, arguments); - this._compute(); - }, -}); - -fieldRegistry.add('sms_widget', SmsWidget); - -return SmsWidget; -}); |
