Release Candidate Version 1.1.0 - #204
Conversation
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Release candidate v1.1.0 update that expands the x0 front-end object framework with new UI object types, introduces recursive object data get/set APIs, adjusts XMLRPC request defaults/method handling, and updates examples + documentation accordingly.
Changes:
- Added recursive
getObjectData(recursive)/setObjectData(data, recursive)support insysBaseObject, plus runnable examples and documentation. - Introduced new system objects (
DivUnique,ProgressBar,RangeSlider) and updated multiple UI components to use shorter/override ObjectIDs and Bootstrap styling. - Updated XMLRPC/button request-method behavior and improved global variable/source-object handling.
Reviewed changes
Copilot reviewed 25 out of 26 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| www/sysXMLRPCRequest.js | Default XMLRPC request type set to GET; header tweak. |
| www/sysSourceObjectHandler.js | Implements GlobalVar source object resolution via factory global vars. |
| www/sysObjTreeSimple.js | Refactors tree DOM structure/styling to Bootstrap list groups; ID handling changes. |
| www/sysObjTabContainer.js | Adjusts ObjectID overriding/initialization for tab container. |
| www/sysObjSQLText.js | Tweaks icon postfix HTML spacing. |
| www/sysObjRangeSlider.js | New RangeSlider system object. |
| www/sysObjProgressBar.js | New ProgressBar system object. |
| www/sysObjOpenCloseContainer.js | ObjectID override + header uses sysObjSQLText (icon/text). |
| www/sysObjList.js | ObjectID override/uniqueness changes. |
| www/sysObjFormfieldList.js | ObjectID override + mapping support in setData; validation flow adjustments. |
| www/sysObjFormfieldItem.js | Formatting/field alignment changes. |
| www/sysObjFileUpload.js | Ensures ObjectID set; minor formatting fix. |
| www/sysObjDiv.js | Formatting updates + new sysObjDivUnique. |
| www/sysObjContextMenu.js | Refactors context menu rendering to Bootstrap list-group; adds hover highlighting. |
| www/sysObjButtonInternal.js | ObjectID override + constructor field refactor/commenting. |
| www/sysObjButtonCallback.js | ObjectID override + constructor refactor/commenting. |
| www/sysObjButton.js | Adds RequestMethod handling and new actions (set, setglobalvar); action flow changes. |
| www/sysFormfieldValidate.js | Updates group validation to use UserValidateGroup. |
| www/sysFactory.js | Registers new object types + adds setGlobalVar. |
| www/sysBaseObject.js | Adds recursive object data get/set helpers + wrapper signature changes. |
| www/sysAsyncNotifyIndicatorItem.js | CSS class tweak for notify indicator items. |
| static/sysInitOnLoad.js | New static (DB-less) initialization entrypoint. |
| example/recursive_object_data/recursive_object_data_examples.js | New console examples covering recursive get/set scenarios. |
| example/recursive_object_data/README.md | Documentation for recursive object data examples. |
| example/README.md | Links new recursive object data example. |
| doc/dev-oop-classes.rst | Documents recursive get/set API and updates section numbering. |
Suppressed comments (1)
www/sysObjButton.js:373
- Similar to the
setbranch, theappendbranch callsRuntimeAppendDataFuncunconditionally after re-fetching objects without guarding against missing IDs or missing function pointers. This can throw and break button actions at runtime.
else if (Action == 'append') {
const SrcObject = sysFactory.getObjectByID(Attributes.SrcDataObject);
const DstObject = sysFactory.getObjectByID(Attributes.DstDataObject);
DstObject.RuntimeAppendDataFunc(SrcObject.RuntimeGetDataFunc());
}
Removed redundant line breaks and improved text flow in the README.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
@copilot please propose a refactoring regarding the button action handling ( |
Here is the proposed refactoring. ProblemThe current design has three issues:
Proposed Design1. Introduce
|
| File | Change |
|---|---|
sysButtonActionProcessor.js |
New – single-responsibility action dispatcher |
sysObjButton.js |
processActions and callbackXMLRPCAsync become thin wrappers delegating to sysButtonActions.executeAction(s) |
sysObjButtonInternal.js |
Remove the copied processActions reference; inherits the simplified version |
sysObjButtonCallback.js |
No change needed (does not use action processing) |
This makes the action dispatch testable in isolation, DRY across the pre- and post-RPC paths, and easy to extend (add a new action type in one place).
Let me know if you'd like me to implement these changes directly in the files.
|
@copilot yes, please implement the button action refactoring like proposed. |
Co-authored-by: clauspruefer <17313789+clauspruefer@users.noreply.github.com>
Implemented in commit Changes made:
|
Pull Request
Description
Release Candidate
v1.1.DivUnique,ProgressBarandRangeSliderObject TypesPOSTtoGETPOST, addRequestMethodProperty (object.json) for all Button TypesType of Change