RSence 2.3.0 is nearing completion. It's now the time to test and report issues. Use the rsence-pre gem for testing the prereleases.
With complex extensions, there are some known bugs in the menus. These bugs existed before, and some related parts are optimized. There might be some cases, where your value gets reverted; more debugging needed.
Recommended update for all users.
Changelog since 2.2.4¶
- Reduced warnings in production mode.
- Fixed bug: HSlider's precise (non-round) thumbs were not displaying correctly.
- Optimizations for HRadioButtonList -derived classes (including HPopupMenu and HMiniMenu), but a value-reverting bug is known; not identified or fixed yet.
No known bugs. Bug fixes, performance optimization, number field cursor stepping. Recommended update for all users.
Changelog since 2.2.3¶
- HNumericTextControl now steps number up/down with cursor keys up/down. Enabled by default, disable by setting the keyDown event listener to false.
- Compound package original sizes are now set, which was the client build status report issue in 2.2.2/2.2.3
- Possible concurrency issue fixed in sessionstorage (could throw an exception about access to an Hash being iterated in some circumstances).
- HSystem and EventManager optimizations:
- If the browser window is blurred, goes into slower throttled "idle" mode
- Normal mode default is 10ms
- Unfocused mode default is 300ms
- Mouse movement calculator optimization added, also disabled when browser window is blurred.
- If the browser window is blurred, goes into slower throttled "idle" mode
- Fixed status[keysDown] issue, where setting and un-setting the keys had reverse checks.
- Also correctly clears the status, when the browser window is blurred.
No known bugs, fixed build and component bugs. Recommended update for all users.
Changelog since 2.2.2¶
- Added compound package (package-package) support for client_pkgs.yaml files (as well as corresponding api calls to the client_pkg plugin).
- Catches ExecJS errors in addition to just CoffeeScript errors (either kind could be thrown, if a CoffeeScript source file had issues).
- Fixes build report bug present on some systems.
- Added listItems option for list-handling components.
- HView destructor doesn't try to delete subviews, if the views array is empty (which can be triggered by destructing a view multiple times in user code; a bug in itself).
- Drag and drop should work as expected for all components even when the web page scroll position isn't in its home position.
- Menu focusing bug fixed.
- Improved HCalendar component, adds keyboard navigation and minor ui improvements.
- Fixed a bug in handling the HVSlider track thumb orientation setting.
- Fixed refreshOnBlur, refreshOnInput and refreshOnIdle mode handlers of text entry field components.
No known bugs, better performance. Recommended update for all users
Changelog since 2.2.1¶
- RSence now supports the superior Puma HTTP server and it's the new default (R.I.P. Mongrel).
- The RSence client-server sync protocol is now symmetrical, which gives just benefits. The Content-Type is application/json, the charset is UTF-8. The client still does not have a privilege to 'new' or 'del' values, just 'set', which is a feature and unlikely to change very soon.
- Removed therubyracer as a dependency, because it immediately crashes Rubinius and was the probable cause of many mysterious/random crashes on other Rubies also; separate competing garbage collectors (Ruby's vs V8's) won't work reliably within the same process. Install Node.js if you haven't done so yet. It's used as an external V8 JS runtime, and won't cause any instability. It's has performance overhead versus therubyracer, though, because a separate process needs to be run every time CoffeeScript is compiled.
No known bugs (existing ones fixed). Recommended update for all users
Changelog since 2.2.0¶
- Optimizations and bug fixes in the client build system.
- Prettier client exception handling, now easily extensible.
- Geometry calculation bug fixes.
- Element handling bug fixes, IE fixes, IE9 optimizations.
- Deprecating removeClassName in ELEM, use delClassName instead (just a naming change, for uniformity).
- Bug fixes, optimizations and minor improvements in HWindow, HPropertyList, HTab, HTextControl, HNumericTextControl, HTextArea.
- Smaller PNG graphics (ran an compression optimizer on them, removing unneccessary metadata and such).
- The DOM elements of view cells have now view_id and elem_id attributes set for @viewId and @elemId respectively; helps troubleshooting.
- Manually setting markup templates into HThemeManager works as expected now (inserts new theme, if one wasn't defined before).
- HRect#toArray method added.
- All classes have an isProduction flag; useful for disabling debug code for production builds.
No known bugs. Recommended update for all users.
Changelog to the client since RSence 2.1.11¶
Added, replaced or major changes:¶
- CoffeeScript support (and some classes have been rewritten in CoffeeScript)
- ELEM is rewritten in CoffeeScript and has many new features
- High-level SVG classes, used like the traditional basic DOM element-based classes:
- SVGControl is the top-level intregration handler. Inherits from HControl and handles the graphics objects created as subviews.
- Integration classes using SVGControl as a parent via the SVGItemBase factory: SVGRect, SVGCicrle, SVGEllipse (SVGOval), SVGLine, SVGPolyLine (SVGPolyline), SVGPolygon, SVGGroup, SVGPath
- Each integration class uses its own geometrical constructor and use common options for setting fill, stroke, color and such.
- HSearchField added: A text field for searching.
- HLabel added: A text field for viewing the label; not a control, it's a view, thus lighter weight than HStringView, that looks the same otherwise.
- GUITreeTabItem; takes a GUITree to render in a tab. Re-renders when the value is changed (useful for binding dynamic YAML GUITrees into values, etc).
- HLocale, which is a central interface for locale-dependant settings, like language strings and date/time/number formatting.
- GUITrees are now in final 1.0 format:
- Support for instance id's via the "id" argument, accessible via @app.getViewById
- Support for instance names via the "name" argument, accessible via @app.getViewsByName
- Syntax refined, common options can be specified at the top level
- Supports post-construct calling instences via the "call" argument.
- Automatic handling of class constructors based on the ancestry of the class (apps vs views vs controls vs other classes).
- Fully backwards compatible all the way to 0.1
- Client is packaged by default into a single library called "rsence.js". It's no longer big by modern standards and removes the hassle of managing client dependencies and latency of loading multiple packages. This can be controlled by the boot_lib setting.
- HTimeSheet (and HTimeSheetItem) has been rewritten.
- HListItemControl added for handling list items at a top level instead of implementing the rougher HListItems valueresponder.
- HValueAction class added. Use for binding values to perform custom actions on changes. Specify the target parent object method name to call (or a property to change) as valueAction in the options, when a value change event happens.
- Menu classes added:
- HMiniMenu is a half-height pulldown menu to be usually used inside other components.
- HPopupMenu is a full-height pulldown menu.
- IE6 is no longer actively supported. If someone still wants to take on that job, please contact us.
- js.inc files are no longer needed. For temporarily disabled js packages, the "disabled" tag file is still honored.
- Better error handling
- If the lostActiveState event method returns false on the currently active control, the active control is not changed.
- The HTimeSheetEditor is no longer included.
- HClickButton has configurable options for clickOnValue and clickOffValue
- HSlider has a new option: "roundValue", which is a boolean for rounding the result. Defaults to false.
- HTextControl (and defived classes) have a new boolean option: focusOnCreate. Defaults to false.
- HClass features added:
- hasAncestor method returns true, if the argument class object is an ancestor of the class object called.
- ancestors array of ancestor classes
- HView has new methods added for determining relationship between two views or controls:
- isChildOf method
- isParentOf method
- isSiblingOf method
- HView has new methods added for setting attributes of named elements similarly to styles:
- setAttrOfPart is like setStyleOfPart
- attrOfPart is like styleOfPart
- Other new methods in HView:
- getLocaleString returns a named string via HLocale
- elemOfPart returns the named element for low-level handling
- Various bug fixes and smaller changes
Changelog to the server since RSence 2.1.11¶
- CoffeeScript compilation support transparently basically everywhere where only straight JS was available before.
- The default address bound is now 127.0.0.1 instead of 0.0.0.0
- client_autoreload is now the default setting; all browser windows of all sessions are automatically reloaded, when apps are changed.
- Startup times have been improved
- Method for compiling coffeescript strings into js, to be used where msg.reply is used for js: msg.coffee( src )
- GUITree YAML files are searched inside a plugin bundle at the following locations (where "foo" is the example name of the plugin): foo.yaml, guy.yaml, gui/foo.yaml, gui/main.yaml
- The command-line tool has been refactored and has many new features
- PID and log filenames are configurable
- Sessions are automatically saved on even intervals, configurable with the autosave_interval setting and can be disabled by setting it 0
- Support for more HTTP request types: HEAD, OPTIONS, DELETE, TRACE and CONNECT in addition to GET and POST. Each are handled in similar fashion by using Servlet plugins.
- The session managment supports sessions for Servlet plugins. The session is supplied as the third argument to the request handlers, which was present before, but not implemented.
- When sessions are expired or invalid, the client is just reloaded with a minimal message in normal mode. In verbose and debug modes, the "Session is Invalid" prompt is still displayed.
- Better session dumping handling and more session-related event method calls to plugins:
- dump_ses is delegated before dumping a session to disk. The receivers receive a session hash, not a msg
- dump_ses_id is delegated before dumping a session to disk. The receivers receive just the session id.
- load_ses is delegated after loading loading a dumped session from disk. The receivers receive just the session id.
- expire_ses is delegated before when a session has expired just before it's deleted. The receivers receive a session hash, not a msg
- expire_ses_id is delegated before when a session has expired just before it's deleted. The receivers receive just the session id.
RSence 2.2 prereleases (6 comments)
Some new features and documentation will be added as well as refinements and bug fixes done for the new features, but not many of the existing features will be changed.
To use it:
gem install rsence-pre
Just use the
rsence-pre cli command where
rsence would be used for stable versions.
- Internet Explorer 9.0 support.
- Minor bug fixes in HView and HMiniMenu destructors.
- Application ID recycling fixed: When an application was killed and relaunched, the id recycling worked incorrecly. Caused some unexplainable side-effects.
Also available in: Atom