Javascript

Language

Use TYPO3/CMS/FrontendEditing/Utils/TranslatorLoader to customize or extend
language translation on client side. There is an configure function which can be used to merge customize configuration with the default one.
If the configuration is already present, the merge strategy can be used to force
an 'merge' or 'override'.
var configuration = {
    translationLabels: {},
    namespaceMapping: {},
}
var configuration = "none";
TranslatorLoader.configure(configuration, mergeStrategy);

Following example show how to use on server side loading:

$this->pageRenderer->loadRequireJsModule('TYPO3/CMS/FrontendEditing/Utils/TranslatorLoader', "function(TranslatorLoader) {
    TranslatorLoader.configure({
        translationLabels: ${translationLabelMap},
        namespaceMapping: ${translationLabelMapping},
    });
}");
In the frontend editing default bootstrap is no merge strategy used. So if it
was configured before, no server side translationLabels get configured. Instead it uses the default fallback implementation.
Be aware that the namespaceMapping configuration property will be changed
without deprecation warning since it is not stable.

Logger

The ulog logging framework is used to handle logs. It is a highly configurable an extendable logger.

Persist log record on Typo3 server is not implemented yet.

Loggers available:

  • FEditing:Component:LoadingScreen
  • FEditing:Component:Widget:Modal
  • FEditing:Component:Widget:Notification
  • FEditing:CRUD
  • FEditing:Editor
  • FEditing:FrontendEditing
  • FEditing:GUI
  • FEditing:localStorage
  • FEditing:Utils:Scroller
  • FEditing:Utils:TranslatorFactory
  • FEditing:Utils:TranslatorLoader

### Log Levels: Following log levels exists: - error : Used if an exception occured and the normal handling failed. - warn: Also used if an exception occured, but the normal handling can be done. - info: Used if an state change occured like an event (eg. mouse click) - log: Used if an point of interesse is reached like the an array to loop. - debug: Used if an calculation happend. - trace (Not implemented yet): Used if an function get called and end. Only useful to record the call chains.

There are some special log levels only used to configure ulog: - none: No logs get selected - all: Normaly it is like trace. But if ulog log levels get extended it is much more save to use all.

Hint: The log level during log selection in configuration are chained. Use warn log level does indirectly also select error logs.

### Configuration

Configuration can be done as URL parameter or/and as localStorage item. There are follwing configuration options: - log: The main setting to control logger’s levels with - log_output: To configure the output of the output channel, where logging should go - log_drain: To configure the output of the drain channel

More details can be found at: https://ulog.js.org/#configure

#### Syntax:

<config_option> = <config> [; <config>] ... Configuration options can have more than one configuration entry:

<config> := [ <filter> = ] <value> Configuration entry have a value and a filter to select the loggers to apply the config: Hint: If no filter or a wildcard is set, the config is used as default config.

<filter> := <RegEx> [ , [ - ] <RegEx> ] ... The filter is a list of RegEx with option to add or substract loggers from the selection set:

Attention: - in log the <value> is a log level - in log_<channel_name> the <value> is one or more output

#### Examples With URL parameters: - to log in general info level: ?log=info Hint: Technical, this is equals to: ?log=*=info - to log widgets in debug and the rest in info mode: ?log=info;FEditing:Component:Widget:*=debug - to print and persist log in output channel: ?log_ouput=console persist - to print logs in general and persist logs from widgets in output channel: ?log_ouput=console;FEditing:Component:Widget:*=console persist - to print logs in general and only persist logs from widgets in output channel: ?log_ouput=console;FEditing:Component:Widget:*=persist

### Output: By default there are two outputs: - console: default browser console - noop: No operation function, used to prevent log in drain channel

### Channel: By default there are two channels: - output: Used if log configuration is matching. eg. log=info and logRecord.level is smaller than info - drain: Opposite to output channel. Used to have the opportunity to handle this log records to like persist in indexedDB.

### Extensions There are two extensions as AMD available to use:

  • TYPO3/CMS/FrontendEditing/Utils/LoggerPersist

Add two output Persist, Server and a new channel highorder - TYPO3/CMS/FrontendEditing/Utils/LoggerWindowError Register window error handlers to log them with a logger.

#### highorder channel There are two new configuration options: - highorder_log: The main setting to control highorder channel selection. Hint: Analog to the log option and the output channel - log_highorder: To configure the output of the highorder channel, where logging should go