Change client of quote and invoice

Hi team,
I have an issue with client list in all create and change modals.
I can fix the problem in create new quote and create new invoice.
Change client in quote and invoice page still show an “s” without client list.
An idea to fix this bug ?

To try to help you we will need some more informations:

  • Which version of InvoicePlane (IP) are you using?
  • Can you take and post a screenshot of the page with the error?
  • When you say, “I can fix the problem in create new quote and create new invoice” what do you exactly mean by “fix”, that there is an error but that you somehow manage to change the client in spite of the error?


  • Version 1.5.9 (the last available on official web site)
  • Screenshot attached
  • I fix the “s” issue on create quote and create invoice modal:
    • /application/modules/quotes/views/modal_create_quote.php
    • /application/modules/invoices/views/modal_create_invoice.php
      when I try to change a client on an existing quote or/and invoice the modal the same “s” issue is displayed.
      The bug is on:
    • /application/modules/quotes/views/modal_change_client.php
    • /application/modules/invoices/views/modal_change_client.php

Thanks for your support

Thanks for the additional information. Now I can compare your screenshot with a standard one in the default language (English)

and tell you that the “s” must be a character (first letter?) of the French translation of the message “Please enter 1…” shown in this screenshot.

The good news are that this bug should not affect the functionality of the modal window, and that you should be able to start typing the name of your client and get a list of client matching the text entered.

The bug must be in the Select2 library used by InvoicePlane, because the code in IP does not show this text.

Incidentally, typing “%” —the SQL wildcard that matches all characters— in the input box will show you the complete list of clients,

I confirm that this is a bug in the current version (4.0.5) of the Select2 library used by IP1, and that it has been fixed in the release candidate of the next version (4.0.6-rc.1) which may be used in the next IP1 release.

If you want to fix it, make a backup copy first of the ‘fr.js’ file under ‘/assets/core/js/locales/select2/’ and then apply the small changes describe here, but beware that

  • the code is in a single long line, and
  • the variables have been renamed as t.

For instance: the piece of code

return"Saisissez au moins "+t+" caractère"+(t>1)?"s":""}

must be rewritten as (notice the extra parenthesis enclosing (t>1)?"s":"" )

return"Saisissez au moins "+t+" caractère"+((t>1)?"s":"")}

to obtain