Tue, 14 Apr 2020 17:16:25 +0200 |
Edouard Tisserant |
SVGHMI: fix probable problem in HMI:Input, where value could be applied to wrong index if used in relative page.
svghmi
|
changeset |
files
|
Tue, 14 Apr 2020 17:15:02 +0200 |
Edouard Tisserant |
SVGHMI: HMI:DropDown element is brought in front when opened, so that it isn't occulted by other widgets at the same level.
svghmi
|
changeset |
files
|
Tue, 14 Apr 2020 17:13:12 +0200 |
Edouard Tisserant |
SVGHMI: HMI:DropDown now catches all clicks when open
svghmi
|
changeset |
files
|
Tue, 14 Apr 2020 12:07:08 +0200 |
Edouard Tisserant |
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
svghmi
|
changeset |
files
|
Tue, 14 Apr 2020 10:56:45 +0200 |
Edouard Tisserant |
SVGHMI: HMI:DropDown now scrolls forward and backward
svghmi
|
changeset |
files
|
Mon, 13 Apr 2020 18:28:22 +0200 |
Edouard Tisserant |
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
svghmi
|
changeset |
files
|
Sun, 12 Apr 2020 21:43:42 +0200 |
Edouard Tisserant |
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
svghmi
|
changeset |
files
|
Thu, 09 Apr 2020 09:52:34 +0200 |
Edouard Tisserant |
SVGHMI: intermediate commit while working on dropdown widget.
svghmi
|
changeset |
files
|
Tue, 07 Apr 2020 10:01:23 +0200 |
Edouard Tisserant |
SVGHMI: HMI is not speculating on PLC variable update anymore when sending new variable value.
svghmi
|
changeset |
files
|
Sat, 04 Apr 2020 22:32:54 +0200 |
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
|
changeset |
files
|
Sat, 04 Apr 2020 17:47:16 +0200 |
Edouard Tisserant |
SVGHMI: fixed keypad JS regarding shift/capslock and other details
svghmi
|
changeset |
files
|
Sat, 04 Apr 2020 09:41:32 +0200 |
Edouard Tisserant |
Fix unmatched "Courier" font for monospace fonts on latest ubuntu 20.04. Selected "FreeMono" instead, present since at least 18.04
svghmi
|
changeset |
files
|
Fri, 03 Apr 2020 14:37:41 +0200 |
Edouard Tisserant |
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
svghmi
|
changeset |
files
|
Fri, 03 Apr 2020 09:52:57 +0200 |
Edouard Tisserant |
SVGHMI: fix keyboard not showing
svghmi
|
changeset |
files
|
Fri, 03 Apr 2020 08:30:00 +0200 |
Edouard Tisserant |
SVGHMI: Added keypads to svghmi test's SVG file
svghmi
|
changeset |
files
|
Fri, 03 Apr 2020 08:13:47 +0200 |
Edouard Tisserant |
merge
svghmi
|
changeset |
files
|
Thu, 02 Apr 2020 15:18:15 +0200 |
Edouard Tisserant |
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
svghmi
|
changeset |
files
|
Thu, 02 Apr 2020 14:04:21 +0200 |
Edouard Tisserant |
SVGHMI: removed debug code
svghmi
|
changeset |
files
|
Thu, 02 Apr 2020 14:03:38 +0200 |
Edouard Tisserant |
SVGHMI: More infrastructure for editing values with a keypad.
svghmi
|
changeset |
files
|
Thu, 02 Apr 2020 09:38:53 +0200 |
Edouard Tisserant |
SVGHMI: Widget input buttons should be clickable through svg:use (onclick attribute instead of addEventListener)
svghmi
|
changeset |
files
|
Wed, 01 Apr 2020 18:10:45 +0200 |
Edouard Tisserant |
SVGHMI: moved dead code to where it belongs
svghmi
|
changeset |
files
|
Wed, 01 Apr 2020 14:42:50 +0200 |
Edouard Tisserant |
SVGHMI: empty widget_keypad.ysl2, WIP
svghmi
|
changeset |
files
|
Tue, 31 Mar 2020 13:20:15 +0200 |
Edouard Tisserant |
SVGHMI: HMI:Switch now accepts boolean values 'true' and 'false'
svghmi
|
changeset |
files
|
Mon, 30 Mar 2020 14:26:42 +0200 |
Edouard Tisserant |
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
svghmi
|
changeset |
files
|
Mon, 30 Mar 2020 11:06:12 +0200 |
Edouard Tisserant |
SVGHMI: prevent man-made memory leak by limiting back button history items count to 42
svghmi
|
changeset |
files
|
Sun, 29 Mar 2020 16:11:21 +0200 |
Edouard Tisserant |
SVGHMI: collect debug data through xslt reflectivity instead of yml2/python trick
svghmi
|
changeset |
files
|
Fri, 27 Mar 2020 14:25:24 +0100 |
Edouard Tisserant |
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
svghmi
|
changeset |
files
|
Thu, 26 Mar 2020 14:21:52 +0100 |
Edouard Tisserant |
SVGHMI: added Back widget.
svghmi
|
changeset |
files
|
Thu, 26 Mar 2020 13:33:20 +0100 |
Edouard Tisserant |
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
svghmi
|
changeset |
files
|
Thu, 26 Mar 2020 11:17:34 +0100 |
Edouard Tisserant |
SVGHMI: Check that explicit relative page jump path is consistant with destination page reference path.
svghmi
|
changeset |
files
|
Wed, 25 Mar 2020 14:09:15 +0100 |
Edouard Tisserant |
SVGHMI: ForEach Widget now has a better wrap-around when scrolling : hit the boundary systematically before wrapping
svghmi
|
changeset |
files
|
Wed, 25 Mar 2020 13:56:04 +0100 |
Edouard Tisserant |
SVGHMI: Alow relative relative Jump. (i.e, relative jump from a foreach widget)
svghmi
|
changeset |
files
|
Wed, 25 Mar 2020 13:36:04 +0100 |
Edouard Tisserant |
SVGHMI: Generalize applying cache to widgets, be it from page or ForEach widgets. Now ForEach widget buttons work as expected.
svghmi
|
changeset |
files
|
Tue, 24 Mar 2020 23:07:54 +0100 |
Edouard Tisserant |
SVGHMI: Widget ForEach buttons now call corresponding methods.
svghmi
|
changeset |
files
|
Tue, 24 Mar 2020 14:03:19 +0100 |
Edouard Tisserant |
SVGHMI: ForEach now has working (un)subscribe. Fixed PageSwitch that wasn't behaving when jumping to current page with another path.
svghmi
|
changeset |
files
|
Mon, 23 Mar 2020 21:44:28 +0100 |
Edouard Tisserant |
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
svghmi
|
changeset |
files
|
Mon, 23 Mar 2020 15:13:36 +0100 |
Edouard Tisserant |
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
svghmi
|
changeset |
files
|
Mon, 23 Mar 2020 10:16:38 +0100 |
Edouard Tisserant |
SVGHMI: ForEach knows its own widgets
svghmi
|
changeset |
files
|
Fri, 20 Mar 2020 10:46:15 +0100 |
Edouard Tisserant |
SVGHMI: add widget_foreach.ysl2
svghmi
|
changeset |
files
|
Fri, 20 Mar 2020 10:00:59 +0100 |
Edouard Tisserant |
SVGHMI: make root HMI tree node a HMI_NODE, droped HMI_ROOT node type
svghmi
|
changeset |
files
|
Thu, 19 Mar 2020 19:23:56 +0100 |
Edouard Tisserant |
SVGHMI: reworked widget (un)subscription now a method of widgect object, allowing special subscription methods
svghmi
|
changeset |
files
|
Thu, 19 Mar 2020 11:32:20 +0100 |
Edouard Tisserant |
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
svghmi
|
changeset |
files
|
Thu, 19 Mar 2020 09:57:26 +0100 |
Edouard Tisserant |
SVGHMI: cosmetic changes
svghmi
|
changeset |
files
|
Thu, 19 Mar 2020 09:31:07 +0100 |
Edouard Tisserant |
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
svghmi
|
changeset |
files
|
Wed, 18 Mar 2020 12:06:50 +0100 |
Edouard Tisserant |
SVGHMI: intermediate untested state. Excluded ForEach widget from pages handled widgets.
svghmi
|
changeset |
files
|
Wed, 18 Mar 2020 09:37:26 +0100 |
Edouard Tisserant |
SVGHMI: update Makefile to pick all changes to any dependency
svghmi
|
changeset |
files
|
Wed, 18 Mar 2020 09:16:14 +0100 |
Edouard Tisserant |
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
svghmi
|
changeset |
files
|
Tue, 17 Mar 2020 14:11:54 +0100 |
Edouard Tisserant |
SVGHMI: moving comments
svghmi
|
changeset |
files
|
Tue, 17 Mar 2020 14:01:37 +0100 |
Edouard Tisserant |
SVGHMI: added widget_common.ysl2
svghmi
|
changeset |
files
|
Tue, 17 Mar 2020 13:43:19 +0100 |
Edouard Tisserant |
SVGHMI: More readable debug output gen code
svghmi
|
changeset |
files
|
Tue, 17 Mar 2020 13:34:07 +0100 |
Edouard Tisserant |
SVGHMI: Cosmetic changes
svghmi
|
changeset |
files
|
Tue, 17 Mar 2020 13:16:01 +0100 |
Edouard Tisserant |
SVGHMI: added inline_svg.ysl2
svghmi
|
changeset |
files
|
Tue, 17 Mar 2020 11:24:07 +0100 |
Edouard Tisserant |
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
svghmi
|
changeset |
files
|
Tue, 17 Mar 2020 10:34:26 +0100 |
Edouard Tisserant |
SVGHMI: moved debug code
svghmi
|
changeset |
files
|
Tue, 17 Mar 2020 09:29:04 +0100 |
Edouard Tisserant |
SVGHMI: created detachable_elements.ysl2
svghmi
|
changeset |
files
|
Tue, 17 Mar 2020 08:00:33 +0100 |
Edouard Tisserant |
SVGHMI: more debug code moved to hmi_tree.ysl2
svghmi
|
changeset |
files
|
Tue, 17 Mar 2020 07:39:50 +0100 |
Edouard Tisserant |
SVGHMI : create hmi_tree.ysl2, rename bbox_intersect.ysl2 into geometry.ysl2 and move more code into. Add per included ysl2 file debug output.
svghmi
|
changeset |
files
|
Mon, 16 Mar 2020 18:27:49 +0100 |
Edouard Tisserant |
SVGHMI: created bbox_intersect.ysl2
svghmi
|
changeset |
files
|
Mon, 16 Mar 2020 17:09:23 +0100 |
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
|
changeset |
files
|
Fri, 13 Mar 2020 21:42:40 +0100 |
Edouard Tisserant |
SVGHMI: relative pages and page jumps
svghmi
|
changeset |
files
|
Fri, 13 Mar 2020 10:36:13 +0100 |
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
|
changeset |
files
|
Thu, 12 Mar 2020 13:16:18 +0100 |
Edouard Tisserant |
SVGHMI: significant whitespace changes
svghmi
|
changeset |
files
|
Thu, 12 Mar 2020 13:15:54 +0100 |
Edouard Tisserant |
SVGHMI: unsignificant changes or changes in generated code
svghmi
|
changeset |
files
|
Thu, 12 Mar 2020 13:14:38 +0100 |
Edouard Tisserant |
SVGHMI: Stop ignoring HMI_NODE in HMI tree, and count it as a BOOL. Soon we use those nodes as reference for relative page jump, and as an "enable" bit for features associated to an HMI tree fragment.
svghmi
|
changeset |
files
|
Thu, 12 Mar 2020 09:33:20 +0100 |
Edouard Tisserant |
SVGHMI: cosmetic code moving
svghmi
|
changeset |
files
|
Tue, 10 Mar 2020 13:57:29 +0100 |
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
|
changeset |
files
|
Mon, 09 Mar 2020 13:43:34 +0100 |
Edouard Tisserant |
SVGHMI: fix wrong updates of HMI variables on each change, especially when not subscribed.
svghmi
|
changeset |
files
|
Mon, 09 Mar 2020 13:40:45 +0100 |
Edouard Tisserant |
SVGHMI: whitespaces
svghmi
|
changeset |
files
|
Fri, 06 Mar 2020 14:43:03 +0100 |
Edouard Tisserant |
SVGHMI: fixed repeated error when Input widget is missing 'value' element
svghmi
|
changeset |
files
|
Fri, 06 Mar 2020 14:42:08 +0100 |
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
|
changeset |
files
|
Fri, 06 Mar 2020 09:35:08 +0100 |
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
|
changeset |
files
|
Thu, 05 Mar 2020 13:54:29 +0100 |
Edouard Tisserant |
SVGHMI: Fix disapearing elements in case of nested detachable elements.
svghmi
|
changeset |
files
|
Thu, 05 Mar 2020 10:23:03 +0100 |
Edouard Tisserant |
SVGHMI: Meter widget accepts 2 arguments : min and max, taken in account when min or max text element is missing
svghmi
|
changeset |
files
|
Wed, 04 Mar 2020 20:02:15 +0100 |
Edouard Tisserant |
SVGHMI: More precise error message on missing HMI path. Meter widget now defaults 0-100 range when min and max elements arent's present, without error.
svghmi
|
changeset |
files
|
Wed, 04 Mar 2020 16:46:35 +0100 |
Edouard Tisserant |
SVGHMI: more whitespace fixes
svghmi
|
changeset |
files
|
Wed, 04 Mar 2020 16:46:03 +0100 |
Edouard Tisserant |
SVGHMI: unlink clones (i.e. deep copy elements refered by svg:use) inside widget.
svghmi
|
changeset |
files
|
Wed, 04 Mar 2020 09:31:53 +0100 |
Edouard Tisserant |
SVGHMI: whitespaces and comments
svghmi
|
changeset |
files
|
Tue, 03 Mar 2020 16:29:22 +0100 |
Edouard Tisserant |
SVGHMI: completely fixed indentation of generated widget description. Lets try to keep it as-is until we can use yslt indentation.
svghmi
|
changeset |
files
|
Tue, 03 Mar 2020 10:58:00 +0100 |
Edouard Tisserant |
SVGHMI: re-indent generated JS
svghmi
|
changeset |
files
|
Mon, 02 Mar 2020 16:30:29 +0100 |
Edouard Tisserant |
SVGHMI: detach/re-attach elements required by pages on page switch
svghmi
|
changeset |
files
|
Mon, 02 Mar 2020 16:25:35 +0100 |
Edouard Tisserant |
SVGHMI: re-indenting
svghmi
|
changeset |
files
|
Mon, 02 Mar 2020 14:43:21 +0100 |
Edouard Tisserant |
SVGHMI: declares pages detachable requirements as an object, to find more efficiently common requirements
svghmi
|
changeset |
files
|
Mon, 02 Mar 2020 10:29:41 +0100 |
Edouard Tisserant |
SVGHMI: fix some JS + add generation of detachable elements, to be continued
svghmi
|
changeset |
files
|
Fri, 28 Feb 2020 22:54:07 +0100 |
Edouard Tisserant |
SVGHMI: now compute discardable elements first so that we can do better grouping of required elements when sumarizing.
svghmi
|
changeset |
files
|
Fri, 28 Feb 2020 17:52:35 +0100 |
Edouard Tisserant |
SVGHMI : documentation for new geometry intersection computation code + little fixes...
svghmi
|
changeset |
files
|
Fri, 28 Feb 2020 16:09:21 +0100 |
Edouard Tisserant |
SVGHMI: detachable and discardable elements sets, Reworked geometric intersection, toward more accurate page content detection.
svghmi
|
changeset |
files
|
Thu, 27 Feb 2020 13:14:24 +0100 |
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
|
changeset |
files
|
Fri, 21 Feb 2020 16:22:44 +0100 |
Edouard Tisserant |
SVGHMI: attempt to optimize for webkit, because of really slow style recompute in svg:use : "unlink clones" (as in inkscape) but stop deep-copy when meeting a widget, and create a new clone instead.
svghmi
|
changeset |
files
|
Fri, 21 Feb 2020 16:18:53 +0100 |
Edouard Tisserant |
SVGHMI: optimize browser work by hiding (display:none) pages that are not displayed.
svghmi
|
changeset |
files
|
Fri, 21 Feb 2020 16:15:33 +0100 |
Edouard Tisserant |
SVGHMI: Better and less verbose SVG namespace handling in XSLT transform
svghmi
|
changeset |
files
|
Mon, 17 Feb 2020 13:57:44 +0100 |
Edouard Tisserant |
SVGHMI: Added mostly untested switch widget
svghmi
|
changeset |
files
|
Fri, 14 Feb 2020 21:41:13 +0100 |
Edouard Tisserant |
SVGHMI: HMI:Page can now be a svg:g group or a svg:use clone, and included/linked widget are included in page. HMI:Jump was updated to be clickable through svg:use, to be generalized.
svghmi
|
changeset |
files
|
Fri, 14 Feb 2020 10:29:10 +0100 |
Edouard Tisserant |
SVGHMI: ensure that coordinate in CSV file generated by inkscape are both matching svg default unit and in default reference frame
svghmi
|
changeset |
files
|
Thu, 13 Feb 2020 09:43:35 +0100 |
Edouard Tisserant |
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
svghmi
|
changeset |
files
|
Thu, 13 Feb 2020 09:41:43 +0100 |
Edouard Tisserant |
SVGHMI : fix watchdog exception when timeout null
svghmi
|
changeset |
files
|
Tue, 11 Feb 2020 13:56:48 +0100 |
Edouard Tisserant |
SVGHMI: be a bit more tolerant with missing HMI paths or missing elements in widgets : continue build (with warning) and fail silently at runtime.
svghmi
|
changeset |
files
|
Thu, 30 Jan 2020 14:33:06 +0100 |
Edouard Tisserant |
SVGHMI : fixed bug happening when some SVG ids are containing dashes
svghmi
|
changeset |
files
|
Thu, 23 Jan 2020 13:46:05 +0100 |
Edouard Tisserant |
SVGHMI : wait for initial timeout after watchdog is triggered, since it generaly induces HMI restart
svghmi
|
changeset |
files
|
Thu, 23 Jan 2020 11:22:09 +0100 |
Edouard Tisserant |
SVGHMI : watchdog is now taking an initial and interval duration as CTN fields.
svghmi
|
changeset |
files
|
Tue, 21 Jan 2020 13:55:03 +0100 |
Edouard Tisserant |
SVGHMI : avoid caching of xhtml file by forcing cache-control header in http response.
svghmi
|
changeset |
files
|
Fri, 17 Jan 2020 16:25:45 +0100 |
Edouard Tisserant |
SVGHMI : HMI_STRING now also supported from HMI to PLC
svghmi
|
changeset |
files
|
Wed, 15 Jan 2020 11:13:39 +0100 |
Edouard Tisserant |
SVGHMI : cosmetic
svghmi
|
changeset |
files
|
Wed, 15 Jan 2020 09:35:29 +0100 |
Edouard Tisserant |
SVGHMI non significant fixes
svghmi
|
changeset |
files
|
Tue, 14 Jan 2020 11:09:26 +0100 |
Edouard Tisserant |
SVGHMI : support for HMI_STRING and HMI_BOOL
svghmi
|
changeset |
files
|
Tue, 14 Jan 2020 11:04:18 +0100 |
Edouard Tisserant |
plc_debug.c/var_acces.c : whitespace cleanup and other cosmetic changes
svghmi
|
changeset |
files
|
Mon, 13 Jan 2020 15:15:01 +0100 |
Edouard Tisserant |
SVGHMI : Added python fomating {port} and {name} to commands so that command can build target URL
svghmi
|
changeset |
files
|
Fri, 10 Jan 2020 17:00:01 +0100 |
Edouard Tisserant |
SVGHMI : add on Start, Stop and Watchdog command fields to configuration
svghmi
|
changeset |
files
|
Fri, 10 Jan 2020 13:15:07 +0100 |
Edouard Tisserant |
SVGHMI: added a watchdog. To ensure that the whole chain is checked, watchdog use a periodic echo of a hearteat variable. JS client code systematically register /HEARTBEAT at 1s update freq, and reacts on updates of /HEARTBEAT by systematically incrementing it. C code catch /HEARTBEAT update and feeds python-implemented watchdog. For now, watchdog does nothing when tiggered
svghmi
|
changeset |
files
|
Wed, 18 Dec 2019 13:31:22 +0100 |
Edouard Tisserant |
Add --on-plc-start --on-plc-stop and --status-change to runtime command line, calling given command respectively on start stop or any event. Command line string is python formated (to eventually include status with {}) before being split (supports quoted strings) and passed to Popen for non-blocking execution.
svghmi
|
changeset |
files
|
Mon, 09 Dec 2019 14:53:42 +0100 |
Edouard Tisserant |
SVGHMI : had to move the problem of wkaing up python thread from plc thread to platform specific code.
svghmi
|
changeset |
files
|
Mon, 09 Dec 2019 10:43:54 +0100 |
Edouard Tisserant |
SVGHMI: change collect/send thread looping condition to fix infinite loop in some cases
svghmi
|
changeset |
files
|
Tue, 03 Dec 2019 09:46:12 +0100 |
Edouard Tisserant |
SVGHMI: re-implemented tree view with classic wxTreeCtl
svghmi
|
changeset |
files
|
Tue, 03 Dec 2019 09:44:48 +0100 |
Edouard Tisserant |
Non significant changes, whitespaces, etc.
svghmi
|
changeset |
files
|
Fri, 15 Nov 2019 10:34:14 +0100 |
Edouard Tisserant |
SVGHMI: Added simple HMI Tree View.
svghmi
|
changeset |
files
|
Thu, 14 Nov 2019 08:46:32 +0100 |
Edouard Tisserant |
SVGHMI: add a class attribute to HMI Tree nodes, set when using HMI_NODE
svghmi
|
changeset |
files
|
Wed, 13 Nov 2019 11:22:53 +0100 |
Edouard Tisserant |
SVGHMI: HMI_LABEL and HMI_CLASS become HMI_NODE.
svghmi
|
changeset |
files
|
Wed, 13 Nov 2019 11:21:04 +0100 |
Edouard Tisserant |
Add FatalError() method to ConfigTreeNode.
svghmi
|
changeset |
files
|
Thu, 07 Nov 2019 16:40:48 +0100 |
Edouard Tisserant |
SVGHMI: various fixes to make SVGHMI behave on more versions of twisted and GCC.
svghmi
|
changeset |
files
|
Wed, 30 Oct 2019 15:17:05 +0100 |
Edouard Tisserant |
SVGHMI - prepare page with cached data when switching. This prevents values that do not change and that was already subscribed in previous page from keeping undefined.
svghmi
|
changeset |
files
|
Tue, 29 Oct 2019 11:18:58 +0100 |
Edouard Tisserant |
SVGHMI: various insignificant code moves, commenting and typos fixes.
svghmi
|
changeset |
files
|
Tue, 29 Oct 2019 09:10:10 +0100 |
Edouard Tisserant |
SVGHMI : fancier second page in tests/svghmi
svghmi
|
changeset |
files
|
Mon, 28 Oct 2019 19:52:43 +0100 |
Edouard Tisserant |
SVGHMI: SVG viewport now defined so that HMI take scales and fit to the view. Implemented page switch through viewport change, no hiding of widget for now.
svghmi
|
changeset |
files
|
Mon, 28 Oct 2019 10:30:20 +0100 |
Edouard Tisserant |
SVGHMI - added simple Meter widget.
svghmi
|
changeset |
files
|
Sun, 27 Oct 2019 22:28:51 +0100 |
Edouard Tisserant |
SVGHMI: Quicker update path for input widget when pressing on buttons, do not wait until data comes back, and simply update value text of the pressed widget. Updated PLC prog for more amimated value to display
svghmi
|
changeset |
files
|
Sun, 27 Oct 2019 21:38:10 +0100 |
Edouard Tisserant |
SVGHMI: fixed HMI->PLC dataflow : not updates as expected, and not initialized properly after subscribe.
svghmi
|
changeset |
files
|
Thu, 24 Oct 2019 11:20:04 +0200 |
Edouard Tisserant |
Fixed one more sequel of 5f79b194fa63 'SVGHMI: filter out temporary variables created while generating ST code out of FBD.'
svghmi
|
changeset |
files
|
Thu, 24 Oct 2019 10:02:07 +0200 |
Edouard Tisserant |
SVGHMI: Added relative changes of HMI value from widgets.
svghmi
|
changeset |
files
|
Tue, 22 Oct 2019 22:58:55 +0200 |
Edouard Tisserant |
SVGHMI - Fixed svghmi.{c,js} about HMI -> PLC data unpack.
svghmi
|
changeset |
files
|
Tue, 22 Oct 2019 17:06:31 +0200 |
Edouard Tisserant |
SVGHMI: Added init call to all widgets at startup to bind events. More features in Input widget : Edit and Change buttons. WIP HMI->PLC value update, incoherent data detected in C part on update.
svghmi
|
changeset |
files
|
Sat, 19 Oct 2019 01:23:30 +0200 |
Edouard Tisserant |
SVGHMI: dispatching data to minimalist "Display" text widget.
svghmi
|
changeset |
files
|
Thu, 17 Oct 2019 15:48:09 +0200 |
Edouard Tisserant |
SVGHMI: Many fixes. Subscriptions to HMItree seems to be working, and dispatch function is called in JS with good data. Bidirectional communication now really working.
svghmi
|
changeset |
files
|
Tue, 15 Oct 2019 17:14:48 +0200 |
Edouard Tisserant |
SVGHMI : many details about communication implemented in JS, with side effects.
svghmi
|
changeset |
files
|
Fri, 11 Oct 2019 12:03:14 +0200 |
Edouard Tisserant |
SVGHMI: added a widgets description object, accessed by id. Added frequency to widgets, as separate template to allow future customization. Excluded non svg elements (i.e inkscape Sets) with HMI: labels from widgets.
svghmi
|
changeset |
files
|
Thu, 10 Oct 2019 10:03:47 +0200 |
Edouard Tisserant |
SVGHMI fix logic for page membership detection
svghmi
|
changeset |
files
|
Thu, 10 Oct 2019 09:54:44 +0200 |
Edouard Tisserant |
SVGHMI compute default page
svghmi
|
changeset |
files
|
Wed, 09 Oct 2019 11:15:14 +0200 |
Edouard Tisserant |
SVGHMI: deduce pages content out of geometry (elements contained in page bounding box are in)
svghmi
|
changeset |
files
|
Wed, 09 Oct 2019 09:04:35 +0200 |
Edouard Tisserant |
SVGHMI: use func:function for parsing labels so that it can be used in predicates
svghmi
|
changeset |
files
|
Tue, 08 Oct 2019 13:27:00 +0200 |
Edouard Tisserant |
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
svghmi
|
changeset |
files
|
Mon, 07 Oct 2019 12:02:45 +0200 |
Edouard Tisserant |
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
svghmi
|
changeset |
files
|
Sat, 05 Oct 2019 09:45:58 +0200 |
Edouard Tisserant |
SVGHI: compute hmitree variables ordered index in xslt
svghmi
|
changeset |
files
|
Wed, 02 Oct 2019 11:31:02 +0200 |
Edouard Tisserant |
SVGHMI: now built.
svghmi
|
changeset |
files
|
Mon, 30 Sep 2019 13:26:11 +0200 |
Edouard Tisserant |
SVGHMI: Work in progress. C side mostly implemented, neither built nor tested.
svghmi
|
changeset |
files
|
Fri, 27 Sep 2019 06:54:35 +0200 |
Edouard Tisserant |
SVGHMI: More strict formating of active HMI labels : @ separator only used for paths
svghmi
|
changeset |
files
|
Thu, 26 Sep 2019 09:33:49 +0200 |
Edouard Tisserant |
SVGHMI: new test svg to drive next implementation
svghmi
|
changeset |
files
|
Wed, 25 Sep 2019 08:53:27 +0200 |
Edouard Tisserant |
Non significant changes in generated xslt, side effect of changes in yslt_noindent.yml2
svghmi
|
changeset |
files
|
Tue, 24 Sep 2019 11:58:31 +0200 |
Edouard Tisserant |
Merge default in SVGHMI branch
svghmi
|
changeset |
files
|
Fri, 20 Sep 2019 13:38:58 +0200 |
Edouard Tisserant |
SVGHMI: Starting to define JS side more in details.
svghmi
|
changeset |
files
|
Thu, 19 Sep 2019 15:32:36 +0200 |
Edouard Tisserant |
SVGHMI: added transformation of code given in inkscape's description fields into javascript functions
svghmi
|
changeset |
files
|
Thu, 19 Sep 2019 10:41:39 +0200 |
Edouard Tisserant |
SVGHMI: gui.svg -> svghmi.svg
svghmi
|
changeset |
files
|
Thu, 19 Sep 2019 09:01:49 +0200 |
Edouard Tisserant |
SVGHMI: moved static JS code to a separate file included at xhtml generation time
svghmi
|
changeset |
files
|
Wed, 18 Sep 2019 11:09:35 +0200 |
Edouard Tisserant |
SVGHMI: Work In Progress : fixed pointer types in ctypes interface, cleaned up server startup and cleanup code, changed document type to XHTML, cleaner JS script : encapsulated in a function and in CDATA.
svghmi
|
changeset |
files
|
Wed, 18 Sep 2019 11:03:56 +0200 |
Edouard Tisserant |
PLCobject: Call "stop" and "cleanup" methods from python runtime files in reverse order compared to "init" and "start".
svghmi
|
changeset |
files
|
Mon, 16 Sep 2019 13:45:04 +0200 |
Edouard Tisserant |
SVGHMI: WIP for python<->C data exchange : message from browser hit the C side.
svghmi
|
changeset |
files
|
Mon, 16 Sep 2019 11:44:20 +0200 |
Edouard Tisserant |
SVGHMI: WIP for python<->C data exchange
svghmi
|
changeset |
files
|
Mon, 16 Sep 2019 10:54:15 +0200 |
Edouard Tisserant |
SVGHMI: WIP for python<->C data exchange
svghmi
|
changeset |
files
|
Thu, 12 Sep 2019 12:56:47 +0200 |
Edouard Tisserant |
SVGHMI: WIP for python<->C data exchange
svghmi
|
changeset |
files
|
Thu, 12 Sep 2019 12:55:32 +0200 |
Edouard Tisserant |
SVGHMI: single session for now
svghmi
|
changeset |
files
|
Thu, 12 Sep 2019 12:54:36 +0200 |
Edouard Tisserant |
SVGHMI: few fixes on serving
svghmi
|
changeset |
files
|
Wed, 11 Sep 2019 12:24:30 +0200 |
Edouard Tisserant |
WIP on svghmi, now builds and runs. HTTP serving + WS transport ready, missing actual data to transmit and thread to collect it.
svghmi
|
changeset |
files
|
Wed, 11 Sep 2019 11:20:11 +0200 |
Edouard Tisserant |
Non significant changes to mute GCC warnings about unused variables.
svghmi
|
changeset |
files
|
Thu, 05 Sep 2019 08:35:33 +0200 |
Edouard Tisserant |
Fixed sequel of 5f79b194fa63 'SVGHMI: filter out temporary variables created while generating ST code out of FBD.'. Some ref to temporary variables are still not using the _TMP_ prefix. They are quite hard to find, so to be continued...
svghmi
|
changeset |
files
|
Tue, 03 Sep 2019 12:17:33 +0200 |
Edouard Tisserant |
SVGHMI: Intermediate state while working on svghmi.c
svghmi
|
changeset |
files
|
Mon, 26 Aug 2019 08:54:02 +0200 |
Edouard Tisserant |
svghmi.c : deduplicated variable access code borrowed from plc_debug.c. Added targets/var_access.c.
svghmi
|
changeset |
files
|
Fri, 23 Aug 2019 14:01:31 +0200 |
Edouard Tisserant |
SVGHMI: Added iterators in svghmi.c copy-pasted form plc_debug.c
svghmi
|
changeset |
files
|
Fri, 23 Aug 2019 13:01:37 +0200 |
Edouard Tisserant |
SVGHMI: svghmi.c now has mutex, iterator, and read/write buffer.
svghmi
|
changeset |
files
|
Thu, 22 Aug 2019 14:58:53 +0200 |
Edouard Tisserant |
SVGHMI: draft for svghmi.c. It has all PLC variables pointed in HMI tree in an array.
svghmi
|
changeset |
files
|
Tue, 20 Aug 2019 10:32:34 +0200 |
Edouard Tisserant |
Pass HMITree to SVG transform. It seems it could really help to reduce JS tree binding logic in the end.
svghmi
|
changeset |
files
|
Tue, 20 Aug 2019 10:30:59 +0200 |
Edouard Tisserant |
Add special nodes at HMI Tree root, fix code to handle special node (no path).
svghmi
|
changeset |
files
|
Tue, 20 Aug 2019 10:08:11 +0200 |
Edouard Tisserant |
Swap CTN code gen and Libraries code gen, because SVGHMI use both, and need the library part to produce hmitree before CTN part.
svghmi
|
changeset |
files
|
Tue, 20 Aug 2019 10:01:18 +0200 |
Edouard Tisserant |
yslt_noindent : Avoid YSLT's indent logic to interfere when using linequote.
svghmi
|
changeset |
files
|
Wed, 14 Aug 2019 13:06:03 +0200 |
Edouard Tisserant |
SVGHMI: make a reasonably basic test
svghmi
|
changeset |
files
|
Wed, 14 Aug 2019 11:05:17 +0200 |
Edouard Tisserant |
SVGHMI: filter out temporary variables created while generating ST code out of FBD.
svghmi
|
changeset |
files
|
Tue, 13 Aug 2019 14:04:13 +0200 |
Edouard Tisserant |
SVGHMI: added deduction of HMI tree from list of HMI_* instances.
svghmi
|
changeset |
files
|
Mon, 12 Aug 2019 13:09:55 +0200 |
Edouard Tisserant |
SVGHMI: added extraction of SVG bounding boxes, obtained from "inkscape -S", and passed to XSLT transform as variable.
svghmi
|
changeset |
files
|
Mon, 12 Aug 2019 13:06:11 +0200 |
Edouard Tisserant |
Allow using docutil.get_inkscape_path() on Linux also.
svghmi
|
changeset |
files
|
Fri, 09 Aug 2019 12:12:24 +0200 |
Edouard Tisserant |
SVGHMI: little fixes to make the build go through
svghmi
|
changeset |
files
|
Fri, 09 Aug 2019 12:11:31 +0200 |
Edouard Tisserant |
SVGHMI: Added XSLT transformation, Makefile to get XSLT from ysl2 (copy of plcopen/Makefile) and a minimal stylesheet to start with.
svghmi
|
changeset |
files
|
Fri, 09 Aug 2019 12:07:33 +0200 |
Edouard Tisserant |
Moved XSLT model query python code so that XSLT part can be reused for other transformations (i.e. in SVGHMI)
svghmi
|
changeset |
files
|
Thu, 08 Aug 2019 15:56:17 +0200 |
Edouard Tisserant |
Complete SVGUI test minimal skeleton so that it builds.
svghmi
|
changeset |
files
|
Wed, 07 Aug 2019 14:18:22 +0200 |
Edouard Tisserant |
intermediate commit, work in progress
svghmi
|
changeset |
files
|
Thu, 18 Jul 2019 14:09:33 +0200 |
Edouard Tisserant |
Use a POU Library's Generate_C to collect all variables in SVGHMI.
svghmi
|
changeset |
files
|
Wed, 17 Jul 2019 09:44:44 +0200 |
Edouard Tisserant |
merged
svghmi
|
changeset |
files
|
Wed, 17 Jul 2019 09:44:11 +0200 |
Edouard Tisserant |
Enable svghmi plugin in features, and small fixes to skeleton.
svghmi
|
changeset |
files
|
Mon, 15 Jul 2019 09:05:00 +0200 |
Edouard Tisserant |
Merged default in svghmi
svghmi
|
changeset |
files
|
Fri, 12 Jul 2019 11:58:22 +0200 |
Edouard Tisserant |
Skeleton for svghmi extension
svghmi
|
changeset |
files
|
Wed, 30 Jun 2021 15:44:32 +0200 |
Edouard Tisserant |
IDE: Allow POU Libraries to inject PLC Configurations globals during build.
|
changeset |
files
|
Wed, 30 Jun 2021 16:46:14 +0300 |
Ivan Tyagov |
WIP: initial setup.
|
changeset |
files
|
Wed, 16 Jun 2021 12:15:02 +0200 |
Edouard Tisserant |
IDE: Fixed variable traces graphs RingBuffers. Removed an apparently useless wxCallAfter in trend graph that was leading to pydeadobject exception on wxGTK when double-clicking.
|
changeset |
files
|
Mon, 14 Jun 2021 16:48:39 +0200 |
Edouard Tisserant |
IDE: Cleaned up some useless tests in variable trace data handling code, changed from bare numpy arrays to RingBuffers inorder to avoid RAM outage and crash after long tracing session.
|
changeset |
files
|
Fri, 11 Jun 2021 11:56:07 +0200 |
Edouard Tisserant |
IDE: Log: Prevent crash when display progress on empty log.
|
changeset |
files
|
Thu, 10 Jun 2021 09:40:05 +0200 |
Edouard Tisserant |
Copy description when DnD variables from CodeFile CTN to POUs
|
changeset |
files
|
Tue, 25 May 2021 15:05:38 +0200 |
Edouard Tisserant |
Runtime: Fix exception "Worker is disabled" when connecting while PLC runtime is starting.
|
changeset |
files
|
Mon, 24 May 2021 14:33:54 +0200 |
Edouard Tisserant |
Finished fixing Wx IDs abuse. There was still some wasted IDs because of wx.NewId calls in many places where it wasn't needed, and those IDs were not re-used. As a consequence Beremiz was making exception crashing after a few hours of intensive use.
|
changeset |
files
|
Wed, 12 May 2021 11:36:56 +0200 |
Edouard Tisserant |
Add ThirPartyPath call in util.path module, so that individual extensions don't have to each implement same logic to find dependencies
|
changeset |
files
|
Thu, 01 Apr 2021 15:51:24 +0200 |
Edouard Tisserant |
IDE: Add a shortcut to project "Clean" action : F9
|
changeset |
files
|
Mon, 29 Mar 2021 15:46:02 +0200 |
Edouard Tisserant |
Fixed misuse of GridCellEditor in DurationCellEditor, potentially leading to crash on windows.
|
changeset |
files
|
Tue, 23 Mar 2021 05:08:51 +0100 |
Edouard Tisserant |
Allow using spin() from ProcessLogger even with no logger given.
|
changeset |
files
|
Wed, 10 Mar 2021 09:59:18 +0100 |
Edouard Tisserant |
Runtime: Added PostStart methot to PLCObject, called after PLC is started, with all libraries and python object already created, and python extensions "Start" methods being called.
|
changeset |
files
|
Tue, 02 Mar 2021 10:11:45 +0100 |
Edouard Tisserant |
IDE: Fix logging of external process execution time so that it is visible on windows as well.
|
changeset |
files
|
Tue, 02 Mar 2021 09:42:50 +0100 |
Edouard Tisserant |
IDE: Process Logging : Add annotation in log so that user can see build is still alive and how long external process takes.
|
changeset |
files
|
Tue, 02 Mar 2021 09:28:44 +0100 |
Edouard Tisserant |
IDE: Iec2CSettings: Log wasn't available in case of exception when launching iec2c.
|
changeset |
files
|
Tue, 02 Mar 2021 09:25:55 +0100 |
Edouard Tisserant |
IDE: Log: Cosmetic changes, refactoring
|
changeset |
files
|
Mon, 01 Mar 2021 15:45:13 +0100 |
Edouard Tisserant |
IDE: Make ST code generation more verbose, since it can be really long in case of big programs, and it is better to let the user know build is still in progress.
|
changeset |
files
|
Sun, 28 Feb 2021 21:45:10 +0100 |
Edouard Tisserant |
IDE: Fixed log console that was not updating line by line smoothly when building.
|
changeset |
files
|
Fri, 09 Apr 2021 09:45:28 +0200 |
Edouard Tisserant |
merge
|
changeset |
files
|
Tue, 02 Feb 2021 13:47:48 +0100 |
Tomaz Orac |
Merge
|
changeset |
files
|
Thu, 28 Jan 2021 14:51:16 +0000 |
Mario de Sousa |
merge
|
changeset |
files
|
Thu, 28 Jan 2021 14:50:26 +0000 |
Mario de Sousa |
modbus plugin: add (user accessible) transaction bool flags for servers/slaves; FIX BUG in previous commit affecting RTU slaves.
|
changeset |
files
|
Thu, 28 Jan 2021 14:17:40 +0000 |
Mario de Sousa |
modbus plugin: add (user accessible) transaction counters for servers/slaves
|
changeset |
files
|
Tue, 23 Feb 2021 16:16:12 +0100 |
Edouard Tisserant |
PLCObject : Ensure that PreStart is executed before starting PLC. Also, make sure that python thread doesn't enter in a start/stop loop when ordered to stop.
|
changeset |
files
|
Mon, 18 Jan 2021 10:59:28 +0100 |
Edouard Tisserant |
Merge
|
changeset |
files
|
Fri, 25 Dec 2020 17:12:02 +0000 |
Mario de Sousa |
merge
|
changeset |
files
|
Fri, 25 Dec 2020 17:11:38 +0000 |
Mario de Sousa |
modbus plugin: add/fix comments
|
changeset |
files
|
Mon, 21 Dec 2020 22:35:07 +0000 |
Mario de Sousa |
merge
|
changeset |
files
|
Mon, 21 Dec 2020 22:32:03 +0000 |
Mario de Sousa |
Modbus plugin: fix bug - map BOOL flag onto C u8 (was incorrectly mapped onto u16)
|
changeset |
files
|
Mon, 21 Dec 2020 22:26:36 +0000 |
Mario de Sousa |
Modbus plugin: map status of MB transaction onto 2 located BYTE vars (instead of a singlw WORD var).
|
changeset |
files
|
Mon, 21 Dec 2020 21:15:47 +0000 |
Mario de Sousa |
Modbus plugin: provide user programs feedback on current connection status mapped onto a WORD located variable
|
changeset |
files
|
Wed, 13 Jan 2021 10:28:09 +0100 |
Edouard Tisserant |
Removed harmful assert in ProcessLogger.
|
changeset |
files
|
Tue, 22 Dec 2020 18:05:05 +0100 |
Edouard Tisserant |
Fix missing import, consequence of bad resolution of conflicting hg graft of f0a822ef9fa0 into d15a997859b1
|
changeset |
files
|
Tue, 14 Jan 2020 11:04:18 +0100 |
Edouard Tisserant |
plc_debug.c/var_acces.c : whitespace cleanup and other cosmetic changes
|
changeset |
files
|
Fri, 03 Jul 2020 14:02:04 +0200 |
Edouard Tisserant |
Prevent global python_poll blocks to be created when accidentally adding content to C-File OnChange column.
|
changeset |
files
|
Mon, 11 May 2020 11:10:38 +0200 |
Edouard Tisserant |
DEBUG: (IDE side) fixed wrong implementation of anti-rapid-fire leading to systematic delay in subscribing
|
changeset |
files
|
Tue, 11 Feb 2020 13:56:48 +0100 |
Edouard Tisserant |
XSLTransform.py: added get_error_log()
|
changeset |
files
|
Mon, 31 Aug 2020 13:54:08 +0200 |
Edouard Tisserant |
Attempt to workaround problem reported about empty plc.xml after unrelated crash. Now, if etree model is corrupted in a way tostring() would generate an empty string, exception prevents saving.
|
changeset |
files
|
Thu, 03 Sep 2020 11:16:08 +0200 |
Edouard Tisserant |
docsvg.py : Better error message when inkscape is not installed.
|
changeset |
files
|
Sat, 04 Apr 2020 09:41:32 +0200 |
Edouard Tisserant |
Fix unmatched "Courier" font for monospace fonts on latest ubuntu 20.04. Selected "FreeMono" instead, present since at least 18.04
|
changeset |
files
|
Mon, 13 Jul 2020 13:56:42 +0200 |
Edouard Tisserant |
Python Runtime: order of execution of extension's init() and cleanup() now reflects order of appearance of extensions in configuration tree.
|
changeset |
files
|
Tue, 22 Dec 2020 14:53:15 +0100 |
Edouard Tisserant |
Runtime: change PLCObject 'BlobAsFile' method to allow customization by overriding
|
changeset |
files
|
Mon, 21 Dec 2020 11:10:27 +0100 |
Edouard Tisserant |
WebInterface: better wording for wiping PLC content: "Repair"
|
changeset |
files
|
Fri, 18 Dec 2020 11:50:28 +0100 |
Edouard Tisserant |
runtime: added restart/reset button in web settings. Accidentaly fixed web settings logging feature.
|
changeset |
files
|
Thu, 10 Dec 2020 15:48:15 +0100 |
Edouard Tisserant |
Add a little test to see OnChange's .count .first .last in action
|
changeset |
files
|
Thu, 10 Dec 2020 14:54:42 +0100 |
Edouard Tisserant |
Fixed "Onchange" object added in previous commit
|
changeset |
files
|
Thu, 10 Dec 2020 11:37:27 +0100 |
Edouard Tisserant |
Python Safe Globals now have more reliable triggering of OnChange call. Added "Onchange" object to accessible runtime variables that let user python code see count of changes and first and last values.
|
changeset |
files
|
Fri, 20 Nov 2020 11:17:40 +0100 |
Edouard Tisserant |
Project tree: avoid flickering and glitches in notebook when selecting some still not opened ConfigTreeNode
|
changeset |
files
|
Wed, 18 Nov 2020 23:06:16 +0100 |
Edouard Tisserant |
Project tree: Clicking on ConfigTreeNode should have same behaviour as for POUS and other IEC types : simple click to select and double click to open.
|
changeset |
files
|
Wed, 18 Nov 2020 10:15:44 +0100 |
Edouard Tisserant |
py_ext: better handling of coma separated OnChange attribute for python safe global variables.
|
changeset |
files
|
Mon, 02 Nov 2020 10:56:09 +0100 |
Edouard Tisserant |
Allow customization of generated py_ext OnChange calls, by adding a static method to PythonFileCTNMixin that can the be later hot patched.
|
changeset |
files
|
Tue, 20 Oct 2020 00:23:52 +0200 |
Edouard Tisserant |
PY_EXT: OnChange is now a coma separated list of callables. Updated tests/python accordingly.
|
changeset |
files
|
Tue, 15 Sep 2020 13:57:06 +0200 |
Edouard Tisserant |
Modbus: fixed typo in ctype typing.
|
changeset |
files
|
Fri, 11 Sep 2020 13:46:41 +0200 |
Edouard Tisserant |
MODBUS: Fix saving of websettings.
|
changeset |
files
|