svghmi/svghmi.js
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
2020-03-24 Edouard Tisserant SVGHMI: ForEach now has working (un)subscribe. Fixed PageSwitch that wasn't behaving when jumping to current page with another path. svghmi
2020-03-20 Edouard Tisserant SVGHMI: make root HMI tree node a HMI_NODE, droped HMI_ROOT node type svghmi
2020-03-19 Edouard Tisserant SVGHMI: reworked widget (un)subscription now a method of widgect object, allowing special subscription methods svghmi
2020-03-16 Edouard Tisserant SVGHMI: Re-enable dispatch to arrays of functions in case of multiple suscription per widget. Still unused, but disabled for reasons not any more true. svghmi
2020-03-13 Edouard Tisserant SVGHMI: relative pages and page jumps svghmi
2020-03-13 Edouard Tisserant SVGHMI: take care of path given in HMI:Page and HMI:Jump, but do not apply subscription offset for now. Intermediate commit in a "working" state. svghmi
2020-03-12 Edouard Tisserant SVGHMI: unsignificant changes or changes in generated code svghmi
2020-03-12 Edouard Tisserant SVGHMI: cosmetic code moving svghmi
2020-03-10 Edouard Tisserant SVGHMI: split page switch into switching subscription and switching elements in the DOM, to ensure that subscriptions have been send before changing DOM, and avoid some flicker. svghmi
2020-03-06 Edouard Tisserant SVGHMI: more decoupling in between UI related and the rest of JS code, still in the aim of enhancing robustness under heavy load. svghmi
2020-03-06 Edouard Tisserant SVGHMI: use requestAnimationFrame to delegate rendering of updates from network. Should help prevent browser collapse leading to watchdog in case of overload. svghmi
2020-03-02 Edouard Tisserant SVGHMI: detach/re-attach elements required by pages on page switch svghmi
2020-02-27 Edouard Tisserant SVGHMI : still trying to optimize. Added xslt code to identitfy minimum set of elements needed by a particular page. Plan is to remove unseen/unused elements from the DOM, and re-appending them later when used, on page switch. Disabled previous optimization. svghmi
2020-02-21 Edouard Tisserant SVGHMI: optimize browser work by hiding (display:none) pages that are not displayed. svghmi
2020-02-13 Edouard Tisserant SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget) svghmi