Files
odoo_source/addons/mass_mailing
Guillaume (gdi)andqsm-odoo 194f73a9bb [IMP] website, *: prevent hardcoded font sizes
*: web_editor, mass_mailing

This commit changes the way the font size selector works. Before this
commit, the font size selector applied a hardcoded font size using the
style attribute of the selected element. The purpose of this commit is
to change this to apply a class on the selected element, making it
responsive and customizable.

In all Odoo applications, the font size selector will now apply a class
on the current selection. An exception is made for mass mailing where
the class would not make much sense as not related to the custom heading
sizes (probably needs to be refactored in the future to use the standard
font-size classes) and fonts cannot be responsive in mails anyway (so
there would be a difference between preview and sent mail).

Those classes are:
- `display-N-fs` with N in [1 => 4]. The sizes are stored in the
`$display-font-sizes` map.
- `hN-fs` with N in [1 => 6]. The sizes are stored in the
`$hN-font-size` variables.
- `small` for the small font size. The size is stored in the
`$small-font-size` variable.

The font size selector shows the value of the class (which is dynamic)
that will be applied.

In the website application, the value of each class is configurable
thanks to a previous commit. The user can choose the size of each font
size class in the website settings.

Note that many alternatives were considered for this feature, this is
the chosen compromise. For the record, here is a very short summary of
the alternatives:

- Doing nothing: voted as the worse idea. Users see a font-size selector
  they will use it one way or another. The font-size won't be
  responsive, breaking their mobile website. And there are real use
  cases you could not do: a big "promotion" paragraph on your product
  page? Not possible: you either break your mobile page (using the font
  size option) or possibly hurt your SEO (using the font-style option
  and turning your paragraph into an h1).

- Removing the font-size selector: we did not want the loss of the
  feature as there are correct usecases to use it (as mentioned above).

- Using the Bootstrap hN and display-N classes instead of making new
  ones. Closed to be the chosen idea but discarded because those classes
  comes with colors (that the user can configure) and it would feel
  weird to have the color change when changing the font-size. Also, in
  the end, we also did not want the line-height, margins, etc of those
  classes (only the font-size).

- Instead of X new classes, have only one: o-fs, which would be applied
  alongside a bootstrap hN or display-N class, when chosen by the user,
  to cancel the unwanted style of those. It works but it forces us to
  always have an added `<span>` to apply the font-size, which we don't
  want in the future (mainly because of display-N classes, see next
  commit). It is actually very needed to be able to use proper
  line-height when reducing the font.

- Using a combination of an inline `em` font-size + a class to clamp it
  on mobile. Was probably the best next idea but rejected for several
  reasons. The main one probably being the inconsistency when changing
  the whole size of a title/paragraph (not part of it) and later
  changing the related theme size later. E.g. have an `<h1>` followed by
  a `<p>`. The h1 is 40px, the paragraph is 20px. Force the title to
  20px, because you want it smaller, same size as the paragraph. Real
  use case but also users could simply use the font-size controls by
  mistake. We would thus apply 0.5em to do that. Later, change the theme
  font-size of h1 to 36px (small change). The 0.5em one is now 18px,
  smaller than the following paragraph. Preventing that would require
  more checks which would "break" other things / possibilities.

- Probably others that were forgotten.

In the end, there was no good or bad answer. "Anything works", as long
as the feature "I want this text smaller/bigger" is there. The
surrounding features are always compromise (some users would expect some
behavior, some users would expect others). This commit focused on
solving the unresponsiveness of those custom font-sizes, which was a
problem for many users.

task-1958098

Part-of: odoo/odoo#129791
Co-authored-by: qsm-odoo <qsm@odoo.com>
2023-10-19 19:08:11 +00:00
..
…

Odoo Mass Mailing

Easily send mass mailing to your leads, opportunities or customers with Odoo Email Marketing. Track marketing campaigns performance to improve conversion rates. Design professional emails and reuse templates in a few clicks.

Send Professional Emails

Import database of prospects or filter on existing leads, opportunities and customers in just a few clicks.

Define email templates to reuse content or specific design for your newsletter. Setup several email servers with their own IP/domain to optimise opening rates.

Organize Marketing Campaigns

Design, Send, Track by Campaigns with our Lead Automation app.

Get real time statistics on campaigns performance to improve your conversion rate. Track mails sent, received, opened and answered.

Easily manage your marketing campaigns, discussion groups, leads and opportunities in one simple and powerful platform.

Integrated with Odoo Apps

Get access to mass mailing features from every Odoo app to improve the way your users communicate.

Send template of emails from Odoo CRM opportunities, select leads based on marketing segments, send job offers and automate answers to applicants, reuse email template in the lead automation marketing campaigns.

Answers to your emails appears automatically in the history of every document with the social network module.

Clean Your Lead Database

Get a clean lead database that improves over the time using the performance of your mails. Odoo handle bounce mails efficiently, flag erroneous leads accordingly and gives you statistics on the quality of your leads.

One click emails send

The marketing department will love working on campaigns. But you can also give a one click mass mailing facility to all others users on their own prospects or documents.

Select a few documents (e.g. leads, support tickets, suppliers, applicants, ...) and send emails to their contacts in one click, reusing existing emails templates.

Follow-up On Answers

The chatter feature enables you to communicate faster and more efficiently with your customer. Get documents created automatically (leads, opportunities, tasks, ...) based on answers to your mass mailing campaigns Follow the discussion directly on the business documents within Odoo or via email.

Get all the negotiations and discussions attached to the right document and relevent managers notified on specific events.

Campaigns Dashboard

Get the insights you need to make smarter marketing campaign. Track statistics per campaign: bounce rates, sent mails, best content, etc. The clear dashboards gives you a direct overview of your campaign performance.

Fully Integrated With Others Apps

Define automation rules (e.g. ask a salesperson to call, send an email, ...) based on triggers (no activity since 20 days, answered a promotional email, etc.)

Optimize campaigns from lead to close, on every channel. Make smarter decisions about where to invest and show the impact of your marketing activities on your company's bottom line.

Integrate a contact form in your website easily. Forms submissions create leads automatically in Odoo CRM. Leads can be used in marketing campaigns.

Manage your sales funnel with no effort. Attract leads, follow-up on phone calls and meetings. Analyse the quality of your leads to make informed decisions and save time by integrating emails directly into the application.