What is an Erply back office Javascript plugin?
A back office Javascript plugin is a piece of Javascript code that gets included (and executed) on every page load. In back office (Classic as well as Berlin), each user interaction (opening a record, saving it, running a search, loading next page of search results) generally results in a new page load.
It is up to the plugin to watch what page was loaded, and act appropriately. A plugin that wants to create a new menu bar button, should naturally execute its payload on every request. A plugin that wants to rearrange product card, should first check if the current page is a product form.
A lot of environment information is available via global, predefined Javascript variables. If you open "View Source" on a back office page, there are a number of Javascript variables defined there:
var url_install = 'https://t1.erply.com/1234/'; var child_window = null; var conf_name = 'mt'; var conf_subname = ''; var page_lang = 'eng'; var section = 'prodmoves'; var subsection = ''; var conf_dateformat = 'm/d/Y'; var conf_date_monthdayformat = 'm/d'; var datepicker_format = conf_dateformat.replace("Y", "yyyy").replace("m", "mm").replace("d", "dd"); var datepicker_firstDay = 0; var thousandsSeparator = ','; var decimalSymbol = '.'; var priceDecimals = 2; var conf_attendants = '0'; var new_menu = 1; var customerCode = '1234'; var apiSessionKey = 'abcd1efgh'; …
Variable "section", for example, defines the type of the current page — is it the product form, the list of invoices, or something else?
Variable "recordID" provides the ID of the currently opened record, if user is on a form. (If user is entering a new record and it has not been saved yet, "recordID" equals 0.)
There is a variable "apiSessionKey" with which the plugin can issue calls to API.
Etc.
These variables are documented below, in section "Context Variables".