Code Monkey home page Code Monkey logo

identitychooser-mx's Introduction

Identity Chooser MX for Mozilla Thunderbird

Do you remember the first time you accidentally sent a work related email from your private email account? Identity Chooser helps you to prevent that. It makes choosing the sender address explicit:

  • Do you want to compose a new email? Identity Chooser forces you to choose the sender address first.

  • Do you want to forward an email? Identity Chooser forces you to choose the sender address first.

To make it short: Every time you'll create a new message, Identity Chooser shows you a menu with all your identities.

Everything in Identity Chooser is about making explicit choices. No automatisms, no defaults.

And as a result you'll never send an email from the wrong email address again.

How to install

Head over to addons.thunderbird.net to find the current version. Development releases might be available earlier in the Releases section on GitHub.

Notes

Starting with version 4, Identity Chooser is a pure mail extension and doesn't use any experiment APIs.

Attribution

This addon uses code from other projects:

identitychooser-mx's People

Contributors

arai-a avatar moralcode avatar nneul avatar speedball2001 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

identitychooser-mx's Issues

ATN review: Sortable.js

From ATN's review comments:
It looks like you use Sortable.js from https://github.com/SortableJS/Sortable. I was not able to identify the version which is bundled with this add-on. Can you provide a link to the tag of the version you are using, or switch to a tagged version? There is a policy which requires using 1-1 copies of external sources. We will allow minor adjustments which may be needed to get it running in Thunderbird.

Sender-selection drop-down menu does not show up on buttons in message window

Thanks for bringing the Identity Chooser back to Thunderbird 78!

There seems to be a slight oddity though - or, I do not know how to
bring it to work.

The add-on works fine, when using the Send/Reply-To/Forward buttons from
Thunderbird's main window - a small pop-up with the configured
sender-emails appears and I can select the wanted sender-address from there.

When I open an email in a separate window (by double clicking it) and
use the Send/Reply-To/Forward buttons from that window, the pop-up with
the configured sender-emails does not appear.

I am pretty sure that the above behaviour was supported in previous
versions of the add-on, but with the latest version it seems I am unable
to configure it.

I am using
Thunderbird version TB 78.4.0 (32-Bit)
Identity Chooser version: 2.0

Theme issue

As shown below I use the dark theme in Linux Mint 20.1. The whole identity area is unreadable!
image
May you please take a look into this issue?

Missing option in sender drop down box

It is a great thunderbird addon, but it removes to posibillity to edit the sender address.
There is such an option in pure thunderbird, but get lost, as soon as you enable the plugin. It would be great, to find a way, making the sender address editable.

Excessive permissions not mentioned in docs (suggestion)

The list of permissions for the extension doesn't mention the permission which must be accepted during the process of the upgrade to the Thunderbird 78 ("Have full, unrestricted access to Thunderbird, and your computer"). I don't say it is the developer's fault (I found recently that the situation is common for many extensions excluded by unexpected changes in Thunderbird 78). However, permissions are a sensitive matter...
Thus I would expect any changes to be elaboratively explained on the Thunderbird Add-ons page.

Had to disable due to consistently selecting wrong profile

The 3.1 version of the extension on TB 91.8 would repeatedly select an identity that was for archival purposes only and should never have been used for replies. Even after unchecking the affected email address and restarting Thunderbird, the problem persisted until I deactivated the extension completely. This issue occurs if one uses the REPLY TO or the REPLY TO ALL icons in the body of an email message.

Once the extension was disabled when I replied back to an email the From address used the correct identity.

compatibility with TB 91.6 ?

Since some weeks the add-on seems incompatible with TB 91. When activated it is impossible to answer or transfer a mail. Desactivating and reactivating the add-on repairs the process but some times ago the failure is back

Reply-identity is not automatically chosen anymore

Using v3.2 in TB102 I now have to choose my identity every time I reply to an email, which is prone to error because previously it was determined on the "to" address in the mail I'm replying to, which was very convenient and the better solution. Now it happens that I click on the wrong address and all the mix-up with wrong addresses starts all over again.

Replying with some hightlighted email content doesn't just quote that text.

When the extension is installed I can no longer highlight some part of the content of the original email to use as the only content for the reply. i.e. by highling something before pressing reply, TB normally uses just that highlighted text in the reply. With Identity Chooser activated the whole original email content is used for the reply.

Turning off the option "Show List of Identities When Clicking on Reply button" solves this but then again this also stops the ability to choose an identity.

mailto links

when I click on a mailto link or send a mail fron an other application, the chooser doesn't popup

Output from error console:

IdentityChooser#initUI -- begin background.js:94:13
IdentityChooser#initUI: window: messageCompose background.js:95:13
IdentityChooser#initUI -- end background.js:121:13

Identity Chooser problem

First of all I would like to thank you for this very useful add on. I am using 78.4.2 with only two more add ons, Automatic Dictionary & Disable DragAndDrop. The only button that works and forces me to choose a sender is the compose button, the other three buttons, reply, replyb to all and forward do not have this add on activated. Can you please help me ?

Thanks in advance, Dimitrios

TB 91.6.2 (64-bit): Opening an attached email (.eml attachment) in a separate window Identity Chooser disables reply for this mail and all following reply attempts to all other emails

Hi,

in line with some other issues re the recent Thunderbird releases in combination with Identity Chooser:

If I open an attached email in a separate window the reply button there does not work. Moreover, after that any other attempt to reply to any mail also fails until the add-on is disabled and re-enabled or TB is restarted.

TB 91.6.2 (64-bit) under Linux, Identity Chooser 3.1

TB102 multiple messages opened for reply when using Reply or Reply-All

Since updating to TB102 (somewhat unintentionally), I have found that with Identity Chooser active, using Reply or Reply-All on a message opens windows for that message and one or more other messages, apparently randomly. I was not sure if it was due to the extension, but after I disabled it, Reply/Reply-All opens just the intended message window for reply. Happy to engage in a shared Zoom or similar to demonstrate if needed.

Feature request, Automatic sender selection according to recipient?

Hi speedball.
I don't know yet if identity chooser already does this, but it would be really cool to have your sender selected automatically after typing your recipient's address. This already existed in an add-on I use a while ago called correct identity, but which is not compatible with today's Thunderbird versions.
What do you say?
Cheers,
JPR

When replying to message in Thunderbird 91.2.1, cursor starts in address box

Hi,

I use identity chooser in Thunderbird and love it. Thanks for writing it.

With the recent Thunderbird update to 91.2.1, when replying to a message, the cursor stays in the address pane instead of starting in the compose section. So, instead of hitting "reply", choosing an identity, and then being able to start typing the message right away, you have to click in the compose window. Otherwise, if you start typing, Thunderbird tried to add another address.

This is new behaviour. I confirmed by temporarily disabling the add-on and trying without it. The behaviour goes back to normal.

I also tried removing and re-installing the add-on. Didn't work...

Do you have any suggestions?

Thanks very much,
Vito DeFilippo

Identity Chooser does not enhance main tool bar buttons for replying and forwarding

First of all I would like to thank you for this very useful add on. I am using 78.4.2 with only two more add ons, Automatic Dictionary & Disable DragAndDrop. The only button that works and forces me to choose a sender is the compose button, the other three buttons, reply, replyb to all and forward do not have this add on activated. Can you please help me ?

Thanks in advance, Dimitrios

Pre select an identity

Thanks for the add-on it's very useful.

I've just downloaded today. I'm not sure if what I'm going to suggest happens if de-select an option like " Show List of Identities When Clicking on Reply button". Sorry if it does, maybe it's just a matter of changing a label to clarify it.

Now, my suggestion:
I would just make a change. Very important change for me since I happen to have many identities, so it's not comfortable for me to always choose from a lot of options.

It would be great if it could compare the reply email from, to, cc or bcc (maybe) for a mail addresses that matches the list of possible identities and put it separately at the beginning of the list or simply just select that one.

If none matches, then do ask and let the user decide.

---- EDIT ----
And, for new messages, let the user choose a default identity, and put it at the beginning of the list the same way: separated if possible.

Again. Thanks for the great work.

Ely

Extension no more working

Hi,

I did not figure out when it stopped working, since I use mail a lot on my phone...
Here are all information I can provide:

  • Thunderbird 78.7.1 (64 bits) on Ubuntu 20.04.2 LTS
  • IdentityChooser 2.2
  • Many errors in the extension debugging toolbox:
[Exception... "Component returned failure code: 0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH) [nsIXPCComponents_Utils.readUTF8URI]"  nsresult: "0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH)"  location: "JS frame :: resource://gre/modules/L10nRegistry.jsm :: L10nRegistry.loadSync :: line 658"  data: no] L10nRegistry.jsm:658:19
Error while loading 'jar:file:///usr/lib/thunderbird/extensions/[email protected]!/manifest.json' (NS_ERROR_FILE_NOT_FOUND) Extension.jsm:570
1619250580380	addons.xpi	WARN	Exception running bootstrap method startup on [email protected]: Error: Error while loading 'jar:file:///usr/lib/thunderbird/extensions/[email protected]!/manifest.json' (NS_ERROR_FILE_NOT_FOUND)(resource://gre/modules/Extension.jsm:570:20) JS Stack trace: readJSON/</<@Extension.jsm:570:20
[email protected]:128:18
Enigmail bootstrap completed
Enigmail startup completed
[Exception... "Component returned failure code: 0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH) [nsIXPCComponents_Utils.readUTF8URI]"  nsresult: "0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH)"  location: "JS frame :: resource://gre/modules/L10nRegistry.jsm :: L10nRegistry.loadSync :: line 658"  data: no] L10nRegistry.jsm:658:19
[Exception... "Component returned failure code: 0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH) [nsIXPCComponents_Utils.readUTF8URI]"  nsresult: "0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH)"  location: "JS frame :: resource://gre/modules/L10nRegistry.jsm :: L10nRegistry.loadSync :: line 658"  data: no] L10nRegistry.jsm:658:19
[Exception... "Component returned failure code: 0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH) [nsIXPCComponents_Utils.readUTF8URI]"  nsresult: "0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH)"  location: "JS frame :: resource://gre/modules/L10nRegistry.jsm :: L10nRegistry.loadSync :: line 658"  data: no] L10nRegistry.jsm:658:19
[Exception... "Component returned failure code: 0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH) [nsIXPCComponents_Utils.readUTF8URI]"  nsresult: "0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH)"  location: "JS frame :: resource://gre/modules/L10nRegistry.jsm :: L10nRegistry.loadSync :: line 658"  data: no] L10nRegistry.jsm:658:19
IdentityChooser#run -- begin background.js:10:13
Option#setupDefaultOptions -- begin options.js:24:13
TransactionInactiveError: A request was placed against a transaction which is currently not active, or which is finished. IndexedDB.jsm:101:46
Uncaught (in promise) Error: An unexpected error occurred undefined
[Exception... "Component returned failure code: 0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH) [nsIXPCComponents_Utils.readUTF8URI]"  nsresult: "0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH)"  location: "JS frame :: resource://gre/modules/L10nRegistry.jsm :: L10nRegistry.loadSync :: line 658"  data: no] L10nRegistry.jsm:658:19
uncaught exception: Object 3 subprocess.jsm:344:22
Content Security Policy: Les paramètres de la page ont empêché le chargement d’une ressource à inline (« default-src »). 2 panel.js:78:24
Webconsole context has changed
Content Security Policy: Les paramètres de la page ont empêché le chargement d’une ressource à inline (« default-src »). panel.js:78:24
Content Security Policy: Les paramètres de la page ont empêché le chargement d’une ressource à inline (« default-src »).

Some messages are in French, sorry...

Regards,

Identity Chooser sometimes stops working

I'm running TB78.6 on a Lenovo Yoga Thinkpad 11e, Win 10 2004 (Idenity Chooser 2.2)

When Identity Choose is installed it works perfectly.
After TB is stopped and restarted it does not intervene and new/reply emails open immediately with the default id.
If Identity Chooser is uninstalled and reinstalled (TB restarted in between) it works perfectly.
Until TB is stopped and restarted when it stops working as above.

Thank you for looking at this.

Write, Reply & Reply All dropdowns stop working if user account identity deleted

Thanks for making this plugin! I've appreciated it for years. I finally just upgraded thunderbird after years of hesitancy about loosing some old plugins and installed the tb78 version. I deleted some identities and Write, Reply & Reply All dropdowns stop working. I restarted TB and disabled then reenabled the plugin, but the workaround was uninstalling and reinstalling, which of course, deleted all my settings. Seems like bug that's easy to replicate. Thanks again!

Reply button should not show the identities if the recipient is a known identity

I just installed identity chooser and I like it that the "write" button offers the list of identities.

What I find quite inconvenient is the fact that the Reply button requires me to choose the identity.

Example: When I receive a mail to my identity "[email protected]", it's most probable that I want to reply using exactly this identity.

So there is no need to select an identity, if "[email protected]" already exists. So there is also no need to show all identities.

But if you think it should be shown nonetheless, I think it would be most convenient to have the known identity be the default option so that a simple press on the enter key would select it.

Disappearing functionality of the add-on in TB 78.3.x (32bit)

When TB is started, Identity Chooser 2.0 is not working, although properly installed and visible in the add-ons manager of TB.
Only disabling/enabling the add-on brings back its functionality - the arrows on the write / forward /reply buttons are visible and fully functional. However, after ending the TB session, the same problem appears again at a restart. No arrows and functionality.
Even a complete uninstall and re-install of the add-on did not solve the problem.

Reply, Forward, ... either not working at all, or using another email

As of 91.2.0, when I try to Reply, Forward, ... using buttons in the message header and select an identity, either nothing happens, or it grabs a previous email I had opened, and not the email I'm dealing with. This is either in the viewer pane or with the email expanded in its own tab.

I'm on Win 10 x64 w 32 GB RAM, and a long time Identity Chooser user. Other Add-Ons are Quick Folders, Quick Filters, Signature Switch, Compact Headers, Send Later, Provider for Google Calendar, Simple Mail Redirection, Toggle Headers, and XNote++. I only get this behavior when Identity Chooser is enabled; all fine w all others enabled.

I've made some embarassing replies to wrong emails due to this bug. Let me know if you want me to test a fix.

Feature Request - Bold Text to Mark Current Mailbox when Answering Mails

Hi there,

on the thunderbird addon website it is written that you prefer an email, but I am no way able to find an email address anywhere. Therefore I am posting my Feature Request here.

The Addon works perfect for me if I write a new email, but when I answer an email it happens from time to time, that I think it was sent to sent to mailbox A and choose mail A as sender whil it actually was written to mailbox B.

My feature request therefore is: If I click on "reply" or "forward" the maildress that that specific mail was sent to should be highlighted (e.g. shown as bold) so that I directly know which would be the correct mail to choose to answer from.

An alternative to this would be an option to disable the addon for "reply" / "forward" actions so that it only lets me choose the identiy whenever I start a new message, but uses the the mail that an email was sent to as a sender by default, when i reply / forward an email.

Signature not appearing

Hi. Since I upgraded to Thunderbird 91 [1], when I click on "Write" and select an identity, the blank message that is opened has no signature, even if a signature is set up for that identity/account. If I click on the "From" field, select another identity and then select the original identity again, the signature appears. Thanks in any case for this wornderful add-on.

[1] More details:

  • Exact Thunderbird version: Thunderbird 91.2.1 (32 bit)
  • OS: Windows 7 Professional (64 bit)
  • Previous Thunderbird version: unfortunately, I don't know, I guess 78

ATN review: tabs and activeTab permissions are probably not needed

From ATN's review:
The tabs and activeTab permissions are probably not needed and an add-on may not request permissions it is not using. The activeTab permission gives you access to the content of a (webpage-) tab and the tabs permission gives you access to some security related information like the URL of a tab. You do not need the tabs permission just to use the tabs API.

Identity Labels

I have quite a few identities I use (over a hundred), and it gets difficult to find the one I need in the moment. If you have the add-on add the identity labels for each identity in the drop-down list, it would make this much easier. Alphabetizing by identity label would be a great addition, as well.

Keyboard shortcut ctrl+n does not always work

Hello.
I know this is an issue you have already tried to solve, it is better now, but not always working. I am using last available version of Thunderbird 64 bits on Windows 10, and this shortcut works for a while and then stops working until I restart Thunderbird. When it doesn't work, it does not open a new message, it just does nothing at all.
Tell me if I can help more to solve this issue.
Cheers.

Show IC emnu on keyboard shortcuts

Can the keyboard shortcuts (CTRL-l, CTRL-r, CTRL-R) be activated in any way?
Only CTRL-N works at it uses the Compose button from the main buttons, but reply-to, reply-to-all and forward do not yet work with keyboard shortcuts.

Re: Identity Chooser Ver 3.2

Error encountered: Thunderbird, yahoo, sending of message failed: Mailbox unavailable” verify account settings
= = = =
Cannot send from one of my three Yahoo accounts.
This failure to send, only occurs with one account.
Clue: it’s the first account in my list of ten email accounts (three different providers) in Thunderbird.
In the “troubled” account I can receive emails from my other two Yahoo accounts and reply (send).
I can receive and reply to my gmail account(s).
I cannot send to any account, either my own or others from the one Yahoo account
I have removed the password from the one Yahoo account and have added a password upon my attempt to send.
If I go to yahoo.com and send via my browser to any of the above addresses that are “rejected” and I can originate and send successfully.
This anomaly only began about 24-hours ago.
Thunderbird 102.2.2, Windows 10 PRO, up-to-date.
I disabled all add-ons and activated the add-ons one at a time.
I strongly believe it’s the interaction of Identity Chooser and TB 102.0.2
Of note, I can successfully send from my other Yahoo email accounts with Identity Chooser active.
For me the error is repeatable, i.e.: I can activate Identity Chooser and my “new” outbound email fails. If I suspend (not remove) Identity Chooser I can create new and successfully send.
Yes, have “tested” above several times with same results.
Oh, between tests, I closed and relaunched Thunderbird.
Yahoo error message

ATN review: LegacyPrefs wrongly attributed

From ATN's review:
You attributed the LegacyPrefs API to https://github.com/dreadnaut/bordercolors-d/blob/mailextension/api/LegacyPrefs/implementation.js but it is actually taken from https://github.com/thundernest/addon-developer-support/tree/master/auxiliary-apis/LegacyPrefs. The version there was indeed only uploaded after your attributed source, because that entire repository is pretty new. I did create that API a bit earlier here https://github.com/jobisoft/CategoryManager/blob/ConversionHelperDiscontinued/sendtocategory/api/legacyprefs/implementation.js. But the official "home" of that API is the ADS repository.

"user defined" adress line is missing

Thank you for this great add-on.
It has only one issue to me: If I choose "from", my addresses are prompted one below the other.
WITHOUT the add-on the very last line allows me to key in an address by hand.
WITH the add-on this very last line is waved.
Do you think, you can do something, that this -for me- very useful line/options stays there?
Thank you!
adressChooser

Quoted text in Reply All is blank

On choosing a message with multiple recipients and clicking Reply All, the resulting message compose window is blank, no quoted text.
Include quoted text on replies is selected in Settings.
Works fine on single Reply, and Forward.
Works on Reply All with the extension disabled.

Quoted text is ignored

Superb tool but it is ignoring any text quoting on a reply.

Normally I reply to emails by highlighting some text and then click Reply. (Bottom posting)

With this add-on enabled, my highlighting is ignored and each time the whole email is being quoted.

Support for choosing identity by ruleset?

The main functionality of this add-on is certainly useful; but - it also becomes a drag, if your identity choice is a simple application of a few rules. Some example:

  • Answer emails using the same identity they were sent to.
  • Always answer email from people on some list using a specific identity.
  • Use an identity based on the currently-selected TB mail folder (but not necessarily that account's identity)
  • When composing a message to people on some list, use a certain identity (trickier, would require tracking the addressees)

Even a limited support for some rules would be a useful addition IMHO; and the combination of "apply rule if possible, otherwise prompt" makes it particularly suited for this add-on.

Cursor stays on address line

With the new update to Identity Chooser (on Firefox), when I click Reply, the cursor stays on the recipient's address line instead of dropping down to the message box. When I disable Identity Chooser, the cursor moves to the box. Any idea of what's going on?

Edit as New

PLEASE add the ability to select account when using Edit as New. For me, this seems to be the most important of all!

"Reply All" missing quoted text

Identity Chooser 3.0

"Reply All" fails to quote the original text when the Account is set to include it.

"Reply" quotes it for the account, ie. works correctly. So does "Forward".

identitychooser.xpi v3.0 not working with TB 78.x

Hi,
I am still using v2.2 and today I wanted to update to version 2.3/3.0. Unfortunately TB answered:
"Identity chooser could not be installed because it is not compatible with Thunderbird 78.13.0."

Is it only compatible with TB 91.x ?

Thanks,
SHC

Incompatible with tbkeys

When using tbkeys and defining shortcuts for New Message, Forward, etc., those shortcuts activate the respective function without Identity Chooser activating to request selecting an account. IC still works fine with default shortcuts.

Mit gleichem Account antworten mit dem Mail empfangen wurde?

Moin, ich lege normal für jeden Händler eine eigene Mailadresse an.
Bekomme ich die Mail, so wird diese in TB auch so angezeigt. Ist es möglich, die Option aufzunehmen, dass per Default so geantwortet wird, wie man angeschrieben wurde? Irgendwann mal, gab es solche Sachen. Wäre auf jeden Fall sinnvoll.

Auto choose non existing identity

Is this possible?

My mail server allows me to choose my identity freely (i.e. the part before the @). So I usually, when filling out a form I give a "personalized" mail address like github @ mydomain.com.

It's very cumbersome to have to create a new identity for each of these cases and I tend to forget it before replying to a mail I received on such an address.

It would be great would the recipient address of a mail I received, if it matches * @ mydomain.com, be used as the sending identity.

addon breaks the "Catch all" address feature

With https://bugzilla.mozilla.org/show_bug.cgi?id=1518025, thunderbird added a new feature allowing to dynamically replace the "from" field with the one the mail responded to was addressed.
This includes 2 parts:

  1. dynamically choosing the corresponding identity (this is indeed in conflict with the features of this addon)
  2. replacing the "from" field when the matching identity is marked as "catch all" (i.e. reply from this identity when delivering headers match is checked, and its value is *@domain)

It would be awesome if, when choosing a "catch all" identity, the from field was correctly replaced with the native thunderbird feature.

If this is not possible (which I suspect), I suppose a simple config option to disable identitychooser when replying / forwarding may be sufficient.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.