svghmi/svghmi.js
2022-07-12 Edouard Tisserant SVGHMI: re-organize animate() to ensure that page fade-out is always visible, also make fade-out curve more aggressive to enhance visual feedback.
2022-07-06 Edouard Tisserant SVGHMI: better handling of page switch fade-out.
2022-06-24 Edouard Tisserant SVGHMI: force initial state of Display widget to empty string.
2022-06-15 Edouard Tisserant SVGHMI: fading page switch : defer update of classList to next animate() call when finishing transition.
2022-06-13 Edouard Tisserant SVGHMI: add fading transition to make page switch feel more responsive on slow machines.
2022-05-05 Edouard Tisserant SVGHMI: Add support for forcing widget update frequency with period longer than a second. As an example, "HMI:Display|10s@/myvar" updates variable every 10 seconds.
2022-05-05 Edouard Tisserant SVGHMI: add localized Date and Time support to sprintf.js. Use with "%D" or "%2.1D" format style.
2022-01-19 Edouard Tisserant SVGHMI: fix again appication of frequency value when given in label. Use it on PushButton instance in svghmi test.
2022-01-19 Edouard Tisserant SVGHMI: Add pushbutton widget, that can take reflect short press in variable, but has no garantee on consistency.
2021-11-08 Edouard Tisserant SVGHMI: Changes /CURRENT_PAGE_* behaviour to prevent problem whith multiclient : all clients were switching page when one was jumping.
2021-11-04 Edouard Tisserant SVGHMI: add CURRENT_PAGE_{location} global variable to reflect currently visible page. If PLC wites some valid page reference in that variable, it triggers page switch. Additionally, fixed /HEARTBEAT being subscribed systematically by JS code even when wtchdog is not enabled.
2021-08-27 Edouard Tisserant SVGHMI: Allow toggling fulscreen mode my right click or long press. svghmi
2021-07-01 Edouard Tisserant SVGHMI: Added a way to distinguish watchdog-enabled HMI from multi-client HMI in URL. svghmi
2021-03-29 Edouard Tisserant SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page svghmi
2021-03-16 Edouard Tisserant SVGHMI: cosmetic change, missing semicolon svghmi
2021-02-19 Edouard Tisserant SVGHMI: Switch from {object} to Map for "updates" global, for performance but also preventing wierd behaviour when iterating svghmi
2021-02-16 Edouard Tisserant merge svghmi
2021-02-16 Edouard Tisserant SVGHMI: Fixed sending HMI_REAL to PLC. Added a svghmi_real test that illustrates using printf style formating in HMI:Display to control precision of Float number display. svghmi
2021-02-16 Edouard Tisserant SVGHMI: i18n: ensure langs always appea in same order, and add two variables that are updated automatically when selecting a new language : lang_name and lang_code. Also fixed i18n startup, prevent wrong lang numer to crash loading. svghmi
2021-02-14 Edouard Tisserant SVGHMI: allow i18n of formated strings of HMI:Messages. This was by construction impossible since formating was given as an argument. Now added optional "format" labelled element in HMI:Display, so that it can be translated, when labelled "_format". svghmi
2021-02-14 Edouard Tisserant SVGHMI: remove forgotten debug code svghmi
2021-02-09 Edouard Tisserant SVGHMI: removed dead code svghmi
2021-02-09 Edouard Tisserant SVGHMI: Add "lang" permament persistent HMI_LOCAL variable to reflect selected language, apply stored language choice at startup and make it always subscribed to a pseudo widget (as for hearbeat) that apply language choice when it changes. svghmi
2021-02-09 Edouard Tisserant SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser. svghmi
2021-02-04 Edouard Tisserant SVGHMI: generate JS translation literals so that it is possible to also translate uses of texts, and added JS code that apply translations to tspans svghmi
2021-02-04 Edouard Tisserant SVGHMI: widget activable elements : moved code to wher it belongs, rewrote cleaner svghmi
2021-01-26 Edouard Tisserant SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect. svghmi
2020-12-24 Edouard Tisserant SVGHMI: decoupled operation string evaluation from HMI variable uptdate in change_hmi_variable(), paving the way for min/max boundaries enforcement svghmi
2020-12-02 Edouard Tisserant SVGHMI: prevent unwnted context menu and pinch zoom svghmi
2020-11-27 Edouard Tisserant SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc. svghmi
2020-11-25 Edouard Tisserant SVGHMI: use const when applicable svghmi
2020-11-25 Edouard Tisserant SVGHMI: Fix: on screen keyboard wasn't showing up when editing local variables through Input widget. svghmi
2020-10-22 Edouard Tisserant SVGHMI: Fix HMI_REAL support, and add a HMI_REAL use case in tests/svghmi. svghmi
2020-08-24 Edouard Tisserant SVGHMI: removed debug code forgotten here and there. svghmi
2020-08-12 Edouard Tisserant Merge svghmi
2020-08-11 Edouard Tisserant SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables. svghmi
2020-08-10 Edouard Tisserant SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM. svghmi
2020-08-10 Edouard Tisserant Merge svghmi
2020-08-08 Edouard Tisserant SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change. svghmi
2020-08-05 usveticic Changed keyboard to show on defined position. svghmi
2020-08-05 Edouard Tisserant SVGHMI: JS refactoring continued : "dispatch_value_to_widget" becomes widget class member "new_hmi_value" (was also broken by previous relativeness commit) svghmi
2020-08-05 Edouard Tisserant SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness". svghmi
2020-08-03 Edouard Tisserant SVGHMI: prefer apply_hmi_value() to change_hmi_value() when possible svghmi
2020-05-21 Edouard Tisserant SVGHMI: stop using eval in change_hmi_value, apparently slowly leaking memory. svghmi
2020-05-13 Edouard Tisserant SVGHMI: explicit handling of undefined maximum widget update frequency svghmi
2020-05-10 Edouard Tisserant SVGHMI: Widget's specific sub/unsub traits are now wxpressed in widget's class. svghmi
2020-04-19 Edouard Tisserant SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued. svghmi
2020-04-07 Edouard Tisserant SVGHMI: HMI is not speculating on PLC variable update anymore when sending new variable value. svghmi
2020-04-04 Edouard Tisserant SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled... svghmi
2020-04-03 Edouard Tisserant SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished. svghmi
2020-04-03 Edouard Tisserant SVGHMI: fix keyboard not showing svghmi
2020-04-02 Edouard Tisserant SVGHMI: Keypad: added code to re-attach keypad when starting edit. svghmi
2020-04-02 Edouard Tisserant SVGHMI: removed debug code svghmi
2020-04-02 Edouard Tisserant SVGHMI: More infrastructure for editing values with a keypad. svghmi
2020-03-30 Edouard Tisserant SVGHMI: prevent man-made memory leak by limiting back button history items count to 42 svghmi
2020-03-27 Edouard Tisserant SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided. svghmi
2020-03-26 Edouard Tisserant SVGHMI: added Back widget. svghmi
2020-03-25 Edouard Tisserant SVGHMI: ForEach Widget now has a better wrap-around when scrolling : hit the boundary systematically before wrapping svghmi
2020-03-25 Edouard Tisserant SVGHMI: Generalize applying cache to widgets, be it from page or ForEach widgets. Now ForEach widget buttons work as expected. svghmi
2020-03-24 Edouard Tisserant SVGHMI: Widget ForEach buttons now call corresponding methods. svghmi