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.
Pull Request
Description
Release Candidate
v1.1.DivUnique,ProgressBarandRangeSliderObject TypesPOSTtoGETPOST, addRequestMethodProperty (object.json) for all Button TypesType of Change